我想寫一個函數,打印多維對象是文本(或整數等)到<span></span>
標籤和數組到無序列表。你怎麼寫一個類似print_r()的函數遞歸地打印對象?
如何讓函數遞歸地工作,以便打印所有內容,而不管它在對象中的級別如何?
謝謝!
我想寫一個函數,打印多維對象是文本(或整數等)到<span></span>
標籤和數組到無序列表。你怎麼寫一個類似print_r()的函數遞歸地打印對象?
如何讓函數遞歸地工作,以便打印所有內容,而不管它在對象中的級別如何?
謝謝!
對象可以被視爲陣列 - 嘗試使用的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";
}
}
}
C.
...但你可能想限制你的遞歸,以防你有循環引用。 – symcbean 2010-03-26 15:33:33
完美 - 謝謝! – significance 2010-03-26 16:50:22
或者更簡單,如果要打印的陣列的遞歸的鑰匙,
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);
}
}
Duplicate:http://stackoverflow.com/questions/2207599/multidimensional-array-iteration/2207739#2207739 – Gordon 2010-03-26 15:28:18