我想编写一个函数,将多维对象(文本(或整数等))打印成<span></span>
标签,将数组打印成无序列表。
如何使函数递归地工作,以便它打印所有内容,无论它在对象中的级别如何?
谢谢!
答案 0 :(得分:1)
可以将对象视为数组 - 尝试使用foreach ....
function dump($obj, $prefix='')
{
foreach ($obj as $key=>$val) {
print "$prefix attribute $key is a " . gettype($val) . "=";
switch (gettype($val)) {
case 'string':
case 'boolean':
case 'resource':
case 'double':
case 'NULL':
var_export($val,true) . "\n";
break;
case 'object':
print "(class=" . get_class($val) . ")";
case 'array':
print "(";
dump($val, $prefix . ' ');
print ")\n";
default:
print "????\n";
}
}
}
下进行。
答案 1 :(得分:1)
或者更简单,以便递归地打印数组的键,
function print_tree($array, $level = 0){
foreach($array as $key => $este){
echo str_pad($key, strlen($key) + $level, " ", STR_PAD_LEFT) . "\n";
if (is_array($este))
print_tree($este, $level+1);
}
}