Php 将字符串转换为带键的数组

Php 将字符串转换为带键的数组,php,arrays,string,key,Php,Arrays,String,Key,我有一个字符串变量: $asd = '[asd] => 0, [mogh] => 1,[for] => 3 '; 我想将其转换为带键的和数组。这就是我想要的: $array['asd'] = 0 $array['mogh'] = 1 $array['for'] = 3 如果您正在构建此文件,则应使用另一种格式,例如JSON,或者甚至根据您的需要使用var\u export(),但是如果您没有选择: preg_match_all('/\[([^\]]+)\] => (\

我有一个字符串变量:

$asd = '[asd] => 0, [mogh] => 1,[for] => 3 ';
我想将其转换为带键的和数组。这就是我想要的:

$array['asd'] = 0
$array['mogh'] = 1
$array['for'] = 3

如果您正在构建此文件,则应使用另一种格式,例如JSON,或者甚至根据您的需要使用
var\u export()
,但是如果您没有选择:

preg_match_all('/\[([^\]]+)\] => (\d+)/', $asd, $matches);
$array = array_combine($matches[1], $matches[2]);
或者,您可以将其清理并将其转换为查询字符串进行解析:

echo $asd = str_replace(array('[',']',' ','=>',','), array('','','','=','&'), $asd);
parse_str($asd, $array);

为什么?你从哪里得到这个字符串?字符串是固定格式吗?使用json_解码并将字符串指定为
$asd='{“asd”:0,“mogh”:1,“for”:3}'然后您所需要做的就是调用json_decode($asd,true);(第二个参数使它返回一个数组而不是一个对象)至于模拟查询字符串解析的第二种方法:我们知道可能有一个数组,如
ab[]=1&ab[]=2&……
,它将被替换而破坏。但是,当然,我的评论涉及更复杂的情况……因此[asd]=>0,[mogh]=>1,[for]=>3将是asd=0&mogh=1&for=3是
asd=0&mogh=1&for=3
。让我猜猜,这就是你真正想要的?是的,我只是想要一种将数组数据组织为字符串的方法,谢谢
json\u encode()