gpt4 book ai didi

PHP 遍历函数将单个数组转换为带有子项的嵌套数组 - 基于父 id

转载 作者:可可西里 更新时间:2023-10-31 23:56:35 26 4
gpt4 key购买 nike

我有一个类似这样的数组:

Array
(
Array
(
[ID] => 1
[parentcat_ID] => 0
),
Array
(
[ID] => 2
[parentcat_ID] => 0
),
Array
(
[ID] => 6
[parentcat_ID] => 1
),
Array
(
[ID] => 7
[parentcat_ID] => 1
),
Array
(
[ID] => 8
[parentcat_ID] => 6
),
Array
(
[ID] => 9
[parentcat_ID] => 1
),
Array
(
[ID] => 13
[parentcat_ID] => 7
),
Array
(
[ID] => 14
[parentcat_ID] => 8
)

)

但我需要一个函数来递归地将每个项目放入相关父数组内的“子”数组中。所以它看起来更像这样:

Array
(
Array
(
[ID] => 1
[parentcat_ID] => 0
[children] => Array (
Array
(
[ID] => 6
[parentcat_ID] => 1
[childen] => Array (
Array
(
[ID] => 8
[parentcat_ID] => 6
[children] => Array (
Array
(
[ID] => 14
[parentcat_ID] => 8
)
)
)
)
),
Array
(
[ID] => 7
[parentcat_ID] => 1
[children] => Array(
Array
(
[ID] => 13
[parentcat_ID] => 7
)
)
),
Array
(
[ID] => 9
[parentcat_ID] => 1
)

)
)
Array
(
[ID] => 2
[parentcat_ID] => 0

)

)

我希望这是有道理的!

最佳答案

试一试(在 php 5.2 下测试):

$inArray = array(    array('ID' => '1', 'parentcat_ID' => '0'),    array('ID' => '2', 'parentcat_ID' => '0'),    array('ID' => '6', 'parentcat_ID' => '1'),      array('ID' => '7', 'parentcat_ID' => '1'),    array('ID' => '8', 'parentcat_ID' => '6'),              array('ID' => '9', 'parentcat_ID' => '1'),      array('ID' => '13', 'parentcat_ID' => '7'),    array('ID' => '14', 'parentcat_ID' => '8'),     );function makeParentChildRelations(&$inArray, &$outArray, $currentParentId = 0) {    if(!is_array($inArray)) {        return;    }    if(!is_array($outArray)) {        return;    }    foreach($inArray as $key => $tuple) {        if($tuple['parentcat_ID'] == $currentParentId) {            $tuple['children'] = array();            makeParentChildRelations($inArray, $tuple['children'], $tuple['ID']);            $outArray[] = $tuple;           }    }}$outArray = array();makeParentChildRelations($inArray, $outArray);print_r($outArray);

关于PHP 遍历函数将单个数组转换为带有子项的嵌套数组 - 基于父 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2094207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com