我可以像这样创建数组:$array = ['key'=>'value'];
但是可以从字符串创建数组:
$string = '['key'=>'value']'?
$array = $string
或$array = (array) $string
不起作用。
答案 0 :(得分:0)
尝试评估。
http://php.net/manual/en/function.exec.php
$array = "['key'=>'value']";
$array = '$array = ' . $array;
eval($array);
但我不推荐exec,因为它可能不安全。
答案 1 :(得分:0)
没有eval():
$str = "['key'=>'value', 'key2'=>'value2']";
$ar = array();
foreach(explode(',', preg_replace('/[^\d\w,>]/', "", $str)) as $k => $v) {
$tmp = explode('>', $v);
$ar[$tmp[0]] = $tmp[1];
}
var_dump($ar);
输出:
array(2) {
["key"]=>
string(5) "value"
["key2"]=>
string(6) "value2"
}
答案 2 :(得分:-1)
您可以使用eval
:
$string = '[\'key\'=>\'value\']';
$array = eval('return '.$string.';');
var_dump($array);