gpt4 book ai didi

PHP分层数组 - parent 和 child

转载 作者:IT王子 更新时间:2023-10-28 23:55:30 26 4
gpt4 key购买 nike

我将 PHP 和 mySQL 与 Idiorm 结合使用.这可能不相关。

我的 PHP 数组

  • 这是 parent 与 child 之间的关系。
  • 0 是根父级。
  • 示例:根父 0 有子 33,子 27 有 child 71.

如果需要解决问题,可以更改此数组结构。

array (
33 =>
array (
0 => '27',
1 => '41',
),
27 =>
array (
0 => '64',
1 => '71',
),
0 =>
array (
0 => '28',
1 => '29',
2 => '33',
),
)

我的分层结果

类似这样的东西,但是作为一个数组...

  0 => 
28
29
33
27 =>
64
71
41

信息

  • 深度未知,可以是无限的。我试过 foreach,但可能不是这样。

我的想法

  • 一些递归函数?
  • 一些 while 循环?

以上两种我都试过了,结果一团糟。这是一个脑筋急转弯。

最佳答案

@deceze 的建议奏效了。但是输入数组需要稍微改变一下,像这样...

$rows = array(
array(
'id' => 33,
'parent_id' => 0,
),
array(
'id' => 34,
'parent_id' => 0,
),
array(
'id' => 27,
'parent_id' => 33,
),
array(
'id' => 17,
'parent_id' => 27,
),
);

来自 https://stackoverflow.com/a/8587437/476 :

function buildTree(array $elements, $parentId = 0) {
$branch = array();

foreach ($elements as $element) {
if ($element['parent_id'] == $parentId) {
$children = buildTree($elements, $element['id']);
if ($children) {
$element['children'] = $children;
}
$branch[] = $element;
}
}

return $branch;
}

$tree = buildTree($rows);

print_r( $tree );

关于PHP分层数组 - parent 和 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13877656/

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