在PHP中将多维数组转换为单个数组

时间:2018-01-25 14:57:45

标签: php arrays codeigniter multidimensional-array

这可能是初学者的问题,但我正在阅读文档 更长的时间已经和我找不到任何解决方案,我有一个数组 是多维的,给出以下格式。

/* This is how my array is currently */
Array
(
  [0] => Array
     (
        [0] => Array
            (
                [title] => a
                [title_num] =>1 
                [status] => 1
            )
        [1] => Array
            (
                [title] => Mr
                [title_num] => 82
                [status] => 1
            )
     )
    [1] => Array
    (
        [0] => Array
            (
                [title] => b
                [title_num] =>25 
                [status] => 2
            )
        [1] => Array
            (
                [title] => c
                [title_num] =>45
                [status] => 2
            )
     )
)

我想将此数组转换为此格式

 /*Now, I want to simply it down to this*/
    Array
    (
        [0] => Array
            (
                [title] => a
                [title_num] =>1 
                [status] => 1
            )
        [1] => Array
            (
                [title] => Mr
                [title_num] => 82
                [status] => 1
            )
        [2] => Array
            (
                [title] => b
                [title_num] =>25 
                [status] => 2
            )
        [3] => Array
            (
                [title] => c
                [title_num] =>45
                [status] => 2
            )
     )

我已经尝试过array_flatten,array_map PHP内置函数     一个链接或任何指向我正确方向的东西将是高度的     理解

3 个答案:

答案 0 :(得分:1)

像这样:

$i=0;
foreach ($array as $n1) {
        foreach ($n1 as $n2) {
            $newArr[$i]['title']=$n2['title'];
            $newArr[$i]['title_num']=$n2['title_num'];
            $newArr[$i]['status']=$n2['status'];
        }
        $i++;
    }

或者根据评论中的建议更简单

for ($i=0; $i < count($array); $i++) { 
    foreach ($array[$i] as $n2) {
        $newArr[$i]['title']=$n2['title'];
        $newArr[$i]['title_num']=$n2['title_num'];
        $newArr[$i]['status']=$n2['status'];
    }
}

答案 1 :(得分:1)

你去吧

$result = [];
foreach($array as $arr)
{
    $result = array_merge($result , $arr);
}

var_dump($result);

答案 2 :(得分:0)

这是解决问题的另一个技巧,

function custom_filter($array) { 
    $temp = [];
  array_walk($array, function($item,$key) use (&$temp){
      foreach($item as $value)
         $temp[] = $value;
  });
  return $temp;
} 

array_walk - 将用户提供的函数应用于数组的每个成员

以下是demo