我正在寻找
的替代品$test = "1=>'msg_test1',3=>'msg_test2',9=>'msg_test3'";
eval('$array_test = array('.$test.');');
有没有人知道如何让它以一种安全的方式从字符串中获得数组?
提前感谢您的帮助!
答案 0 :(得分:2)
您可以使用explode()
手动解析它,如下所示:
$test = "1=>'msg_test1,3=>'msg_test2,9=>'msg_test3'";
$array_test = array();
foreach(explode(',', substr($test, 0, -1)) as $row)
{
$split = explode('=>\'', $row);
$array_test[$split[0]] = $split[1];
}
var_dump($array_test);
产地:
array (size=3)
1 => string 'msg_test1' (length=9)
3 => string 'msg_test2' (length=9)
9 => string 'msg_test3' (length=9)
答案 1 :(得分:0)
如果我理解你的问题,那么你应该像这样格式化你的字符串
$test = "value1,value2,value2";
然后继续并爆炸
$array_test = explode(',', $test);
你的数组
$array_test = array(
'1' => 'value1'
'2' => 'value2'
'3' => 'value3'
);