Как создать массив из вывода var_dump в PHP?

Как я могу проанализировать вывод var_dump в PHP для создания массива?

Related of "Как создать массив из вывода var_dump в PHP?"

Используйте 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, а затем воссоздать ее позже, проверьте сериализованные () и unserialize (), которые больше подходят для этой задачи.

Вы не можете. var_dump просто выводит текст, но ничего не возвращает.

Возможно, вы пытаетесь преобразовать объект в массив? http://www.phpro.org/examples/Convert-Object-To-Array-With-PHP.html

Возможно, вы ищете var_export , который даст вам действительное выражение PHP переданного значения.

У меня была аналогичная проблема: сценарий с длительным запуском, созданный в конце, 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_export создает PHP-код, который вы можете запустить через eval .

Но мне интересно, какова твоя идея?