1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| $a = array(
'a' => 1,
'b' => array(
'b.1' => 2,
'b.2' => array(
'b.2.1' => 'hello',
),
),
'c' => (object)array(1,2,3),
);
$_ = function ($value, $key = null, $indent = 0) use (&$_) {
echo str_repeat('| ', $indent) . "+ " . ($key ? "$key : " : "");
if ($value instanceOf Traversable || is_array($value)) {
echo is_array($value) ? "array\n" : "object\n";
foreach ($value as $k => $v) {
$_($v,$k,$indent+1);
}
}
else {
if (is_object($value) && !is_callable(array($value, '__toString')))
$value = "object";
echo "$value\n";
}
};
ob_start();
$_($a);
$buffer = ob_get_clean();
echo str_replace(array(' ', "\n"), array(' ','<br />'), $buffer); |
Partager