作为一个例子,我在网站中有这个页面的页面结构。问题是我必须在下拉列表中获取这些项目,但他们必须根据他们的父母打算。
问题是中间循环(foreach)必须继续循环,只要有该级别的子项目,打印它们,并且对于每个级别,必须添加额外的意图“_”。
我一直在努力解决这个问题几个小时,我已经失去了思想,我似乎无法弄清楚能够做到这一点会发生什么。
欢迎任何帮助!提前致谢:
下面的测试数据:
我正在使用以下代码进入第二级:
$items = loadSubItems(0); // returns 9 16 20
$intend = "";
foreach($items as $item) {
$subitems = loadSubItems($item);
if(count($subitems) > 0) {
echo $intend.$item." has subitems: <br />";
$intend .= "_";
foreach($subitems as $subitem) {
echo $intend.$subitem."<br />";
}
} else {
echo "<br />".$item." has no subitems <br />";
}
}
此代码有输出:
9 has no subitems
16 has subitems:
_17
_18
_19
20 has no subitems
编辑:所以我想要的结果是:
9 has no subitems 16 has subitems: _17 __21 ___22 __23 ___24 _18 _19 20 has no subitems
答案 0 :(得分:2)
看看我写的这个小功能。它完全符合您的需要..这是递归方法。您可以查看任何级别。
<?php
function arrayRec($array, $intent) {
$intent .= "_";
foreach($array as $key=>$value) {
echo $intent.$key."</br>";
arrayRec($value, $intent);
}
}
$tree = array("1" => array("11" => array(), "12" => array(), "13" => array()), "2" => array(), "3" => array("31" => array("311" => array()), "32" => array()), "4");
arrayRec($tree);
?>
这导致类似:
_1
__11
__12
__13
_2
_3
__31
___311
__32
_4