我有以下动态创建的变量:

$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
)