【发布时间】:2019-09-10 09:58:20
【问题描述】:
我想从数组中自动获取子元素值。它是多维数组格式。您可以看到如下所示的数组格式
注意:子元素会自动生成。所以,不想静态代码逻辑。
我想创建类别树,数组结构如下所示:
Array
(
[0] => Array
(
[id] => 1
[parent_cat_name] => 0
[cat_name] => Test 1
[status] => 1
[position] => 1
[created_at] => 2019-09-03 09:27:45
[updated_at] => 2019-09-03 11:00:54
[children] => Array
(
[0] => Array
(
[id] => 2
[parent_cat_name] => 1
[cat_name] => Test 2
[status] => 1
[position] => 2
[created_at] => 2019-09-03 09:28:19
[updated_at] => 2019-09-03 11:01:00
[children] => Array
(
[0] => Array
(
[id] => 4
[parent_cat_name] => 2
[cat_name] => Test 4
[status] => 1
[position] => 4
[created_at] => 2019-09-03 09:35:20
[updated_at] => 2019-09-03 11:01:03
[children] => Array
(
[0] => Array
(
[id] => 5
[parent_cat_name] => 4
[cat_name] => Test 5
[status] => 1
[position] => 3
[created_at] => 2019-09-07 05:55:09
[updated_at] => 2019-09-07 05:55:09
)
)
)
)
)
)
)
[1] => Array
(
[id] => 3
[parent_cat_name] => 0
[cat_name] => Test 3
[status] => 1
[position] => 4
[created_at] => 2019-09-03 09:35:10
[updated_at] => 2019-09-03 11:00:58
)
)
使用的代码:
public function buildTree(array $elements, $parentId = 0) {
$branch = [];
foreach ($elements as $element) {
if ($element['parent_cat_name'] == $parentId) {
$children = $this->buildTree($elements, $element['id']);
if ($children) {
$element['children'] = $children;
}
$branch[] = $element;
}
}
return $branch;
}
实际结果:
- 测试 1
- 测试 2
- 测试 4
- 测试 5
- 测试 4
- 测试 2
- 测试 3
【问题讨论】:
-
I want不是问题。描述您遇到的实际问题。 -
@u_mulder 我无法从上面的数组中生成实际结果。
-
那么,您使用的代码在哪里?
-
检查我更新的问题。