从字符串创建数组

时间:2012-11-14 10:41:10

标签: php arrays

我有一个字符串

$str = "array (
   'from' => 'OK',
   'to' => 'OK',
   array (
      'id' => 204847
   ),
)"

我怎样才能创建匹配的数组? 或者我怎么能得到身份证?

3 个答案:

答案 0 :(得分:3)

如果此字符串不是用户输入,则最简单的方法是使用eval

eval('$myArray = '.$str.';');
来自文档的

重要提示

  

eval()语言构造 非常危险 ,因为它允许执行任意PHP代码。 因此不鼓励使用 。如果您仔细确认除了使用此构造之外没有其他选项,请特别注意 不要将任何用户提供的数据 传递到其中,而不事先正确验证它。

答案 1 :(得分:2)

你可以使用PHP的eval()函数认为你需要知道这个字符串是可信的..即便如此我也不愿推荐它:

文档: http://php.net/manual/en/function.eval.php

警告: When is eval evil in php?为什么它是邪恶的

答案 2 :(得分:2)

我要打破“回答提出的问题”模式,因为eval非常危险,我甚至不会接近建议使用它。

相反,请将字符串更改为可识别的互换格式,例如JSON甚至XML。或PHP's native serialisation format ......