将多维数组转换为单个数组

时间:2017-05-17 04:36:00

标签: php arrays

  你可以帮我解决一下我的代码,我很难过   将我的多维数组转换为单个数组

     

这是我的多维数组:

array:2 [
      0 => array:3 [
        0 => "tuesday"
        1 => "thursday"
      ]
      1 => array:3 [
        0 => "monday"
        1 => "wednesday"
        2 => "friday"
      ]
    ]
  

这就是我想要做的事情:

array:["tuesday","thursday","monday","wednesday","friday"]
  

这是我的代码

$day = [
          0 => array:3 [
            0 => "tuesday"
            1 => "thursday"
          ]
          1 => array:3 [
            0 => "monday"
            1 => "wednesday"
            2 => "friday"
          ]
        ];
$days = [];

$lent = count($day);
        for ($x=0; $x < $lent ; $x++) { 
            $lengt = count($data[$x]);
            for ($i=0; $i < $lengt; $i++) { 
                $days[$x] = $day[$x][$i];
            }
        }

3 个答案:

答案 0 :(得分:1)

易:

$flattened = [];
foreach ($mdarray as $arr) {
    foreach ($arr as $val) {
        $flattened[] = $val;
    }
}

上面的代码所做的是迭代多维数组,获取每个子数组的值,并将其元素添加到$flattened

如果您使用的是PHP 5.6+,则此代码更简单:

$flattened = array_merge(...$mdarray);

答案 1 :(得分:0)

call_user_func_array结合多个结果。

$oneDimensionalArray = call_user_func_array('array_merge',$day);

答案 2 :(得分:-2)

for($i = 0; $i < count($day); $i++){
    for($j = 0; $j < count($day[$i]); $j++){
        $days[] = $day[$i][$j];
    }
}