我正在寻找一个递归的php函数,它会调用一个函数来生成嵌套的HTML块(不一定只是DIV).例如,对于以下数组:
$a = array(
'b' => 'b value',
'c' => 'c value',
'd' => array(
'd1' => array(
'd12' = 'd12 value'
),
'd2' => 'd2 value'
),
'e' => 'e value'
);
以及以下功能
function block( $key ) {
return '
}
会导致
key - b
key - c
key - d
key - d1
key - d12
key - d2
key - e
解决方法:
原谅粗略的格式和非常原始的缩进方式,但它应该像你上面的格式一样工作.注意使用in_array(…)
码
nestdiv($a);
function nestdiv($array, $depth = 0) {
$indent_str = str_repeat(" ", $depth);
foreach ($array as $key => $val) {
print "$indent_str
print "${indent_str}key - $key\n";
if (is_array($val))
nestdiv($val, ($depth+1));
print "$indent_str
}
}
OUTPUT
key - b
key - c
key - d
key - d1
key - d12
key - d2
key - e
标签:php,recursion,multidimensional-array
来源: https://codeday.me/bug/20190610/1214254.html