Как я могу проанализировать вывод var_dump
в PHP для создания массива?
Как создать массив из вывода var_dump в PHP?
Ответы (6)
Используйте var_export, если вам нужно представление, которое также является действительным кодом PHP.
$a = array (1, 2, array ("a", "b", "c"));
$dump=var_export($a, true);
echo $dump;
будет отображать
array (
0 => 1,
1 => 2,
2 =>
array (
0 => 'a',
1 => 'b',
2 => 'c',
),
)
Чтобы превратить это обратно в массив, вы можете использовать eval, например.
eval("\$foo=$dump;");
var_dump($foo);
Не уверен, зачем вам это нужно. Если вы хотите где-то сохранить структуру данных PHP, а затем воссоздать ее позже, ознакомьтесь с serialize () и unserialize (), которые больше подходят для этой задачи.
У меня была аналогичная проблема: длительный скрипт производил в конце vardump большого массива. Пришлось как-то разобрать его для дальнейшего анализа. Мое решение было таким:
cat log.stats |
sed 's/\[//g' |
sed 's/\]//g' |
sed -r 's/int\(([0-9]+)\)/\1,/g' |
sed 's/\}/\),/g' |
sed -r 's/array\([0-9]+\) \{/array(/g' >
log.stats.php
Вы не можете. var_dump
просто выводит текст, но ничего не возвращает.
Возможно, вы пытаетесь преобразовать объект в массив? http://www.phpro.org/examples/Convert-Object-To-Array-With-PHP.html
Возможно, вы ищете var_export
, который предоставит вам допустимое PHP-выражение переданного значения.
var_export
создает код PHP, который можно запустить через _ 2_.
Но мне интересно, что у вас за идея?