我基本上想从表示树形结构的多维数组中构建一个html ul/li嵌套列表。
以下代码可以正常工作,但我想要改进它:
我需要一种方法来跟踪递归级别,以便可以对不同级别应用不同的类,添加缩进到生成的输出等。
我将此标记为作业,因为我想利用这个机会来提高我对递归的(薄弱)理解,所以我希望得到指导解决方法的答案,而不是完整的工作示例 :)
以下代码可以正常工作,但我想要改进它:
我需要一种方法来跟踪递归级别,以便可以对不同级别应用不同的类,添加缩进到生成的输出等。
function buildTree($tree_array, $display_field, $children_field, $class='', $id='') {
echo "<ul>\n";
foreach ($tree_array as $row) {
echo "<li>\n";
echo $row[$display_field] . "\n";
if (isset($row[$children_field])) {
$this->buildTree($row[$children_field]);
}
echo "</li>\n";
}
echo "</ul>\n";
}
$tree_array看起来像这样:Array
(
[0] => Array
(
[category_id] => 1
[category_name] => calculatoare
[parent_id] => 0
[children] => Array
(
[0] => Array
(
[category_id] => 4
[category_name] => placi de baza
[parent_id] => 1
)
[1] => Array
(
[category_id] => 5
[category_name] => carcase
[parent_id] => 1
[children] => Array
(
[0] => Array
(
[category_id] => 6
[category_name] => midi-tower
[parent_id] => 5
)
)
)
)
)
[1] => Array
(
[category_id] => 2
[category_name] => electronice
[parent_id] => 0
)
[2] => Array
(
[category_id] => 3
[category_name] => carti
[parent_id] => 0
)
)
我将此标记为作业,因为我想利用这个机会来提高我对递归的(薄弱)理解,所以我希望得到指导解决方法的答案,而不是完整的工作示例 :)