我有像下面这样的绳子
["Day1"]["Morning"]=mutton&["Day1"]["Evening"]=Juice&["Day2"]["Morning"]=burger&["Day2"]["Evening"]=pizza
,我正试图将其转换为如下所示的数组
$arr["Day1"]["Morning"] = "mutton";
$arr["Day1"]["Evening"] = "Juice";
$arr["Day2"]["morning"] = "burger";
$arr["Day2"]["evening"] = "pizza";
我试过像下面这样的。
$str = '["Day1"]["Morning"]=mutton&["Day1"]["Evening"]=Juice&["Day2"]["Morning"]=burger&["Day2"]["Evening"]=pizza';
$pieces = explode("&", $str);
foreach($pieces as $pie)
{
$arr.$pie;
}
var_dump($arr);
我知道上面的代码真的很蠢:/ .Is,有什么合适的解决方案吗?
发布于 2014-02-13 06:43:54
它看起来可以用parse_str()
解析,但不需要一些转换:
$str = '["Day1"]["Morning"]=mutton&["Day1"]["Evening"]=Juice&["Day2"]["Morning"]=burger&["Day2"]["Evening"]=pizza';
parse_str(preg_replace('/(?<=^|&)/', 'x', str_replace('"', '', $str)), $a);
var_dump($a['x']);
它删除双引号,用x
对每个条目进行前缀,然后应用parse_str()
。为了了解preg_replace()
的功能,中间结果是:
x[Day1][Morning]=mutton&x[Day1][Evening]=Juice&x[Day2][Morning]=burger&x[Day2][Evening]=pizza
解析上述字符串将产生一个具有单个根元素x
的数组。
https://stackoverflow.com/questions/21746826
复制相似问题