打印嵌套的PHP数组$ var[& # 39;关键# 39;][& # 39;关键# 39;][& # 39;关键# 3


Print nested PHP array as $var['key']['key']['key'] = value;

需要在php文件中写入(使用fwrite())一些设置,格式为:

$var['key']['key']['key'] = false; // bool
$var['key']['key'] = 'string'; // string
$var['key'] = 1; // numeric

有嵌套的php数组

代码将覆盖上面文件中定义的一些值,在我的例子中,Var_export()无用。

有什么好的解决方案吗?

在—我想我可以把答案的要点移植到PHP:

function dump_array_recursive ( $prefix, $var ) {
    if ( is_array( $var ) && !empty( $var ) ) {
        foreach ($var as $key => $val) {
            $prefix_key = $prefix . "[" . var_export( $key, true ) . "]";
            dump_array_recursive( $prefix_key, $val );
        }
    } else {
        echo "$prefix = " . var_export( $var, true ) . ";'n";
    }
}
// example call:
dump_array_recursive( '$foo', $foo );

这比Perl版本简单一点,因为PHP只有一种数组类型,并且不需要担心标量引用。我还决定不尝试收集输出,而是简单地使用echo;如果你愿意,你可以用fwrite()替换它,或者只是使用输出缓冲来捕获字符串中的结果。

p。请注意,虽然这个函数的输出通常为每个值包含一行,但这并不能保证:var_export()的输出可能包含换行符,这些换行符将被传递到输出。我发现触发这种行为的两种情况包括带有换行符的数组键和空数组,由于某种原因,它们被导出为"array ('n)"而不仅仅是"array()"