父子 多维数组转换为单维数组

  • 本文关键字:数组 单维 转换 父子 php
  • 更新时间 :
  • 英文 :

Array
(
    [0] => Array
        (
            [id] => 1
            [parent_id] => 0
            [name] => A
        )
    [1] => Array
        (
            [id] => 2
            [parent_id] => 1
            [name] => A > B            
        )
    [2] => Array
        (
            [id] => 3
            [parent_id] => 2
            [name] => A > B > C
        )
)

我想要的是来自多维数组的单维数组,例如

array(
       [1] => A 
       [2] => A > B 
       [3] => A > B > C
     ) 

假设元素内的id索引是唯一,则可以使用函数array_columnidname之间的关系提取为 ana 关联数组。 array_column接受列的名称作为第三个参数,以用作结果数组的索引。

array_column文档

要解决您的特定问题,您可以像这样使用它

$data = [
    [
        'id' => 1,
        'parent_id' => '0',
        'name' => 'A',
    ],
    [
        'id' => 2,
        'parent_id' => '1',
        'name' => 'A > B',
    ],
    [
        'id' => 3,
        'parent_id' => '2',
        'name' => 'A > B > C',
    ]
];
$names = array_column($data,'name','id');
print_r($names); 
//[1 => 'A', 2 => 'A > B', 3 => 'A > B > C']

使用 RecursiveArrayIterator

foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($records)) as $k=>$v){
    if($k=='name'){$singleDimension[]=$v;}
}

演示:https://3v4l.org/DQdg3

最新更新