【发布时间】:2013-04-20 00:21:39
【问题描述】:
假设我从无法访问原始 PHP 创建的数组的某个来源获得此输出:
Array
(
[products] => Array
(
[name] => Arduino Nano Version 3.0 mit ATMEGA328P
[id] => 10005
)
[listings] => Array
(
[category] =>
[title] => This is the first line
This is the second line
[subtitle] => This is the first subtitle
This is the second subtitle
[price] => 24.95
[quantity] =>
[stock] =>
[shipping_method] => Slow and cheap
[condition] => New
[defects] =>
)
[table_count] => 2
[tables] => Array
(
[0] => products
[1] => listings
)
)
现在我想输入该数据并让算法重新创建它正在打印的原始数组,以便我可以将它用于我自己的应用程序。
目前我正在考虑使用sub_str() 和正则表达式来提取数据并适当地放置它。在我进一步之前,是否有更简单的方法,通过已经编写的代码或 php 插件来为我做这件事?
它必须适用于多数组 - 所以这篇文章不起作用,它甚至引用了正确的函数来使用: How create an array from the output of an array printed with print_r?
【问题讨论】:
-
显示你的尝试...
-
目前我正在考虑一个 sub_str() 和 regex 语句来提取数据并适当地放置它。在我更进一步之前,是否有更简单的方法,通过已经编写的代码或 php 插件可以为我做到这一点?
-
这是 var_export 的用途,而不是 print_r。
-
另外,检查 php.net 上的用户 cmets 是否有 print_r。已经编写了几个反向函数。
-
你可以为它写一些基本的解析器,但是由于值没有分隔,你可能会得到一个与原始数组不同的数组,
print_r输出永远不会被读回. (例如,当=> Array(出现在值本身中时。也许很少见,但需要考虑。
标签: php arrays multidimensional-array output