我正在寻找的替代方案
$test = "1=>'msg_test1',3=>'msg_test2',9=>'msg_test3'";
eval('$array_test = array('.$test.');');
有人知道如何从字符串中以安全的方式获得数组吗?
提前感谢您的帮助!
您可以使用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)
如果我理解你的问题,那么你应该像一样格式化你的字符串
$test = "value1,value2,value2";
然后继续并引爆
$array_test = explode(',', $test);
您的阵列
$array_test = array(
'1' => 'value1'
'2' => 'value2'
'3' => 'value3'
);