我有以下动态创建的变量:
$var = "'a'=>'123', 'b'=>'456'";
我用它来填充一个数组:
$array=array($var);
我不能做$array=array('a'=>'123', 'b'=>'456')
,因为$var总是不同的。
因此它显示了我:
Array
(
[0] => 'a'=>'123', 'b'=>'456'
)
这是错误的,因为我需要获得:
Array
(
[a] => 123
[b] => 456
)
我的代码有什么问题? 提前致谢。
分析解答
理想情况下,您应该仅利用PHP的语法来填充关联数组,如下所示:
$array = [];
$array['a'] = '123';
$array['b'] = '456';
但是,您实际上可以编写一个脚本来分析您的输入以生成关联数组:
$var = "'a'=>'123', 'b'=>'456'";
preg_match_all ("/'([^']+)'=>'([^']+)'/", $var, $matches);
$array = [];
for ($i=0; $i < count($matches[0]); $i++) {
$array[$matches[1][$i]] = $matches[2][$i];
}
print_r($array);
打印:
Array
(
[a] => 123
[b] => 456
)