我的问题
是否可以使用str_replace或PHP中的任何其他特殊方法替换var_dump / var_export数据?
例如改变这个:
array (
0 =>
array (
'age' => '21',
'number' => '45243',
'anotherNumber' => '32463',
'anotherAge' => '33',
),
)
进入这个
[
0 =>
[
'age' => '21',
'number' => '45243',
'anotherNumber' => '32463',
'AnotherAge' => '33',
],
]
使用str_replace('array (', '[', var_export($obj));
或者沿着这些方向的东西,我已经尝试了上述陈述,但它不起作用
答案 0 :(得分:1)
e.g:
function myDump($arr) {
if (is_scalar($arr)) {
echo var_export($arr);
return;
}
if (is_array($arr)) {
echo '[' . PHP_EOL;
$cc = '';
foreach ($arr as $k => $val) {
echo $cc, var_export($k), ' => ';
myDump($val, $level + 1);
$cc = ',' . PHP_EOL;
}
echo '],', PHP_EOL;
}
}
$arr = array (
array (
'age' => '21',
'number' => '45243',
'anotherNumber' => '32463',
'anotherAge' => '33',
),
);
echo '<pre>';
myDump($arr);
echo '</pre>';
输出将是:
[
0 => [
'age' => '21',
'number' => '45243',
'anotherNumber' => '32463',
'anotherAge' => '33'],
],
这只是一个例子,根据您的需要进行修改。
答案 1 :(得分:0)
是的,但你必须给&#34;返回&#34; var_export的参数。
像这样:echo str_replace('array (', '[', var_export($obj, true));
进一步阅读:http://php.net/manual/de/function.var-export.php
str_replace也可以将数组作为前两个参数。因此,您可以在一次调用中处理多个替换操作。
像这样:echo str_replace(['array (', ')'], ['[', ']'], var_export($obj, true));
但是应该说明这将取代所有出现的&#39;&#39;用&#39;]&#39;。因此,如果在数组的某些字符串中使用大括号,则会操纵数据。