gpt4 book ai didi

php - 从数组列表创建数组树

转载 作者:IT王子 更新时间:2023-10-29 00:52:19 25 4
gpt4 key购买 nike

我有一个这样的列表:

array(
array(id=>100, parentid=>0, name=>'a'),
array(id=>101, parentid=>100, name=>'a'),
array(id=>102, parentid=>101, name=>'a'),
array(id=>103, parentid=>101, name=>'a'),
)

但是要大得多,所以我需要一种有效的方法来将它变成像这样的树状结构:

array(
id=>100, parentid=>0, name=>'a', children=>array(
id=>101, parentid=>100, name=>'a', children=>array(
id=>102, parentid=>101, name=>'a',
id=>103, parentid=>101, name=>'a',
)
)
)

我不能使用嵌套集或类似的东西,因为我可以在我的数据库中添加左右值。有任何想法吗?

最佳答案

好的,我就是这样解决的:

$arr = array(
array('id'=>100, 'parentid'=>0, 'name'=>'a'),
array('id'=>101, 'parentid'=>100, 'name'=>'a'),
array('id'=>102, 'parentid'=>101, 'name'=>'a'),
array('id'=>103, 'parentid'=>101, 'name'=>'a'),
);

$new = array();
foreach ($arr as $a){
$new[$a['parentid']][] = $a;
}
$tree = createTree($new, array($arr[0]));
print_r($tree);

function createTree(&$list, $parent){
$tree = array();
foreach ($parent as $k=>$l){
if(isset($list[$l['id']])){
$l['children'] = createTree($list, $list[$l['id']]);
}
$tree[] = $l;
}
return $tree;
}

关于php - 从数组列表创建数组树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4196157/

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