我正在寻找编写一个递归 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 '<div>'.$key.'</div>';
}
会导致
<div>
key - b
</div>
<div>
key - c
</div>
<div>
key - d
<div>
key - d1
<div>
key - d12
</div>
</div>
<div>
key - d2
</div>
</div>
<div>
key - e
</div>
请原谅粗略的格式和非常粗略的缩进方式,但它应该像您上面的格式一样工作。注意 in_array(...) 的使用
CODE
nestdiv($a);
function nestdiv($array, $depth = 0) {
$indent_str = str_repeat(" ", $depth);
foreach ($array as $key => $val) {
print "$indent_str<div>\n";
print "${indent_str}key - $key\n";
if (is_array($val))
nestdiv($val, ($depth+1));
print "$indent_str</div>\n";
}
}
OUTPUT
<div>
key - b
</div>
<div>
key - c
</div>
<div>
key - d
<div>
key - d1
<div>
key - d12
</div>
</div>
<div>
key - d2
</div>
</div>
<div>
key - e
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)