首页 > 解决方案 > Parent Child 多维数组转换为一维数组

问题描述

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
     ) 

标签: php

解决方案


假设id元素内的索引是唯一的,您可以使用该函数将和array_column之间的关系提取为关联数组。 接受作为结果数组索引的列名作为第三个参数。idnamearray_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']

推荐阅读