父子多维阵列成一维数组

问题描述 投票:-1回答:2
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
2个回答
1
投票

假设你的元素中的id指数是唯一的,你可以使用函数array_column提取全日空关联数组idname之间的关系。 array_column接受作为第三个参数的列的名称作为所得到的阵列的指数来使用。

array_column Documentation

为了解决您的具体问题,你可以使用它像这样

$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']

0
投票

使用RecursiveArrayIterator

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

但是:四联zxsw POI

© www.soinside.com 2019 - 2024. All rights reserved.