我正在使用各种表从查询创建一个数组,这些表为我提供了可变数量的父项,每个父项都包含可变数量的值。
为简单起见,请说我有以下内容(使用p作为父级,使用v作为值):
$parent[0] = array("p1v1","p1v2");
$parent[1] = array("p2v1","p2v2","p2v3");
$parent[2] = array("p3v1","p3v2");
我需要创建以下树:
嵌套的foreach循环:
foreach ($parent[0] as $key1 => $value1) {
echo $value1 . '<br />';
foreach ($parent[1] as $key2 => $value2) {
echo '-- ' . $value2 . '<br />';
foreach ($parent[2] as $key3 => $value3) {
echo '---- ' . $value3 . '<br />';
}
}
}
我可以使用上面嵌套的foreach循环执行此操作,但我的问题是我不知道对于给定查询我将拥有多少父母。那么,我怎样才能创建可变数量的嵌套foreach循环......我相信有更好的方法。
感谢您的任何意见和建议。
答案 0 :(得分:2)
$parent[0] = array("p1v1","p1v2");
$parent[1] = array("p2v1","p2v2","p2v3");
$parent[2] = array("p3v1","p3v2");
function print_nested_array($parent,$level=0) {
foreach($parent[$level] as $value) {
if($level > 0) {
foreach(range(0,$level-1) as $j) {
echo '--';
}
echo ' ';
}
echo $value . "\n"; //change to "<br>" for html
if($level < count($parent)-1)
print_nested_array($parent,($level+1));
}
}
print_nested_array($parent,0);