【问题标题】:1 multidimensional array with 2 arrays inside merge the values1个多维数组,里面有2个数组合并值
【发布时间】:2015-07-21 16:47:57
【问题描述】:

我有一个动态创建的多维数组,里面有 2 个数组,但请注意它也可以是 4 个数组。取决于用户。 问题是我不知道如何将值合并到 1 个数组中,因为我只有 1 个多维数组,我查看了 array_merge 但这需要 2 个数组。请指出正确的方向。

看起来像这样:

array (size=2)
  'standaard' => 
    array (size=4)
      0 => float 0.42
      1 => float 0.74
      2 => float 0.39
      3 => float 0.44
  'natugro' => 
    array (size=4)
      0 => float 0.44
      1 => float 0.8
      2 => float 0.33
      3 => float 0.36

我想要的是将 2 个数组的值合并到 1 个用 ':' 分隔的数组中

像这样:

array (size=1)
     array (size=4)
       0 => string '0.42:0.44' (length=4)
       1 => string '0.74:0.8' (length=4)
       2 => string '0.39:0.33' (length=4)
       3 => string '0.44:0.36' (length=4)

我尝试了什么: 但这只会返回 1 个包含最后一个值的数组。

$test = array_merge($fruitHarvest);
var_dump($test);

这是创建数组的代码。

$dbKenmerk = mysqli_query($conn, 'SELECT kenmerk FROM kenmerken WHERE user_id = '.$user.' AND jaar = '.$_SESSION["jaar"].'');
    while($getKenmerk = mysqli_fetch_assoc($dbKenmerk)){

        $dbFruitHarvest = mysqli_query($conn, 'SELECT vruchten_geoogst FROM gewasregistratie WHERE user_id = '.$user.' AND jaar = '.$_SESSION["jaar"].' AND kenmerk = "'.$getKenmerk["kenmerk"].'"');

        foreach($dbFruitHarvest as $key => $innArr){
            foreach($innArr as $val){
                $fruitHarvest[$getKenmerk["kenmerk"]][] = $val;
            }
        }
    }

    var_dump($fruitHarvest);

【问题讨论】:

    标签: php arrays multidimensional-array


    【解决方案1】:

    这应该适合你:

    只需用冒号内爆你的元素。

    <?php
    
        array_unshift($fruitHarvest, function(){return implode(":", func_get_args());});
        $result = call_user_func_array("array_map", $fruitHarvest);
    
        print_r($result);
    
    ?>
    

    【讨论】:

    • 酷。但我会理解是否接受更简单的答案:)
    • 看来这很好用!你能解释一下你在这里做什么吗?我试着理解它,但我没有得到 func_get_args() 的部分
    • @Julez 你基本上像这样调用array_map()array_map(function(){return implode(":", func_Get_args());}, $fruitHarvest[subArray1], $fruitHarvest[subArray2], ...); 这意味着遍历每个子数组的第一个元素,然后是第二个元素,依此类推
    • 好的,非常感谢,我已经花了很多时间在这上面……但我现在学到了一些新东西。
    猜你喜欢
    • 1970-01-01
    • 2020-09-15
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多