$arr = [
[
'id' => 1,
'children' => [
'id' => 2,
'children' => [
'id' => 3,
'children' => [
'id' => 4
]
]
]
],
[
'id' => 5,
'children' => [
'id' => 6,
]
],
[
'id' => 7
]
];
存在children數(shù)組則將children數(shù)組里的id賦值給新的數(shù)組,最終組成新的數(shù)組如下:
$arr2 = [
[1,2,3,4],
[5,6],
[7]
];
2 回答

料青山看我應(yīng)如是
TA貢獻1772條經(jīng)驗 獲得超8個贊
<?php
$arr = [
[
'id' => 1,
'children' => [
'id' => 2,
'children' => [
'id' => 3,
'children' => [
'id' => 4
]
]
]
],
[
'id' => 5,
'children' => [
'id' => 6,
]
],
[
'id' => 7
]
];
function pushChild($children, &$container)
{
$container[] = $children['id'];
if (! isset($children['children'])) {
return;
}
pushChild($children['children'], $container);
}
$arr2 = [];
foreach ($arr as $item) {
$result = [];
pushChild($item, $result);
$arr2[] = $result;
}
var_dump($arr2);
輸出
~ ??? php test.php
array(3) {
[0]=>
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
}
[1]=>
array(2) {
[0]=>
int(5)
[1]=>
int(6)
}
[2]=>
array(1) {
[0]=>
int(7)
}
}

鴻蒙傳說
TA貢獻1865條經(jīng)驗 獲得超7個贊
$data = new \RecursiveArrayIterator($data);
$iterator = new \RecursiveIteratorIterator($data,\RecursiveIteratorIterator::SELF_FIRST);
$iteratorArr = [];
foreach ($iterator as $key=>$element) {
}
試試RecursiveArrayIterator遞歸
- 2 回答
- 0 關(guān)注
- 416 瀏覽
添加回答
舉報
0/150
提交
取消