<?php
$tree = [
0 => [
'name' => 'root',
'data' => 0,
'children' => [
'1' => [
'name' => 'Auto',
'data' => 0,
'children' => [
'2' => [
'name' => 'Tyres',
'data' => 0,
'children' => [],
],
'3' => [
'name' => 'Audio',
'data' => 1,
'children' => [],
],
],
],
'4' => [
'name' => 'Dishes',
'data' => 0,
'children' => [
'5' => [
'name' => 'Forks',
'data' => 0,
'children' => [],
],
'6' => [
'name' => 'Knives',
'data' => 0,
'children' => [
'7' => [
'name' => 'Stainless steel',
'data' => 0,
'children' => [],
],
'8' => [
'name' => 'Silver',
'data' => 0,
'children' => [],
],
],
],
],
],
]
]
];
#var_dump($tree);
function reduceTree($tree)
{
foreach ($tree['children'] as $key => $value) {
if ($value['children']) {
$tree['children'][$key] = reduceTree($value);
}
if (!$tree['data']) {
unset($tree['children'][$key]);
}
}
return $tree;
}
$new = reduceTree($tree[0]);
var_dump($new);
- Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.7, 7.2.29 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- array(3) {
["name"]=>
string(4) "root"
["data"]=>
int(0)
["children"]=>
array(0) {
}
}
preferences:
202.88 ms | 403 KiB | 167 Q