在PHP中,可以使用递归的方式将"tree-array"转换为数组。下面是一个示例代码:
function treeToArray($tree) {
$result = array();
foreach ($tree as $node) {
$data = array(
'id' => $node['id'],
'name' => $node['name'],
// 添加其他需要的属性
);
if (isset($node['children'])) {
$data['children'] = treeToArray($node['children']);
}
$result[] = $data;
}
return $result;
}
$tree = array(
array(
'id' => 1,
'name' => 'Node 1',
'children' => array(
array(
'id' => 2,
'name' => 'Node 1.1',
'children' => array(
array(
'id' => 3,
'name' => 'Node 1.1.1',
),
array(
'id' => 4,
'name' => 'Node 1.1.2',
),
),
),
array(
'id' => 5,
'name' => 'Node 1.2',
),
),
),
array(
'id' => 6,
'name' => 'Node 2',
),
);
$result = treeToArray($tree);
print_r($result);
这段代码定义了一个treeToArray
函数,它接受一个"tree-array"作为参数,并将其转换为数组。函数使用递归的方式遍历树的每个节点,将节点的属性添加到结果数组中。如果节点有子节点,则递归调用treeToArray
函数处理子节点。
以上代码的输出结果如下:
Array
(
[0] => Array
(
[id] => 1
[name] => Node 1
[children] => Array
(
[0] => Array
(
[id] => 2
[name] => Node 1.1
[children] => Array
(
[0] => Array
(
[id] => 3
[name] => Node 1.1.1
)
[1] => Array
(
[id] => 4
[name] => Node 1.1.2
)
)
)
[1] => Array
(
[id] => 5
[name] => Node 1.2
)
)
)
[1] => Array
(
[id] => 6
[name] => Node 2
)
)
这个函数可以将任意层级的"tree-array"转换为数组,并保留原始结构。在实际应用中,您可以根据需要修改函数的属性映射和处理逻辑。
领取专属 10元无门槛券
手把手带您无忧上云