0

如果我从 mysql(或其他)获得以下文本字符串,如何使用 PHP 将其转换为实际数组?

array("foo" => "bar","honey" => "pops")

我知道我可以将数组保存为序列化状态,但这正是我在这里要避免的。

4

3 回答 3

1

使用eval,但它太危险了....我不建议你使用这样的

$string = '$array = array("foo" => "bar","honey" => "pops");' ;
eval($string);
var_dump($array);

输出

array(2) {
    ["foo"]=>
    string(3) "bar"
    ["honey"]=>
    string(4) "pops"
}

推荐

使用标准格式,例如

JSON http://php.net/manual/en/book.json.php

XML http://php.net/manual/en/book.simplexml.php

Serialized PHP http://php.net/manual/en/function.serialize.php

于 2012-04-20T20:30:44.130 回答
1

答案是“不要这样做”。 永远不要把 PHP 代码放在你的数据库中。数据库用于数据,而不是代码。

正确的方法是存储一个序列化数组(不知道为什么要避免这种情况)。

于 2012-04-20T20:36:14.563 回答
0

您可以使用以下eval功能:

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

尝试这样的事情:

$my_string = 'array("foo" => "bar","honey" => "pops")';

eval("\$result=$my_string;");
于 2012-04-20T20:30:46.867 回答