首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将字符串转换为php中的数组

将字符串转换为php中的数组
EN

Stack Overflow用户
提问于 2014-02-13 06:28:55
回答 1查看 76关注 0票数 4

我有像下面这样的绳子

代码语言:javascript
运行
复制
["Day1"]["Morning"]=mutton&["Day1"]["Evening"]=Juice&["Day2"]["Morning"]=burger&["Day2"]["Evening"]=pizza 

,我正试图将其转换为如下所示的数组

代码语言:javascript
运行
复制
$arr["Day1"]["Morning"] = "mutton";
$arr["Day1"]["Evening"] = "Juice";
$arr["Day2"]["morning"] = "burger";
$arr["Day2"]["evening"] = "pizza";

我试过像下面这样的。

代码语言:javascript
运行
复制
$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,有什么合适的解决方案吗?

EN

回答 1

Stack Overflow用户

发布于 2014-02-13 06:43:54

它看起来可以用parse_str()解析,但不需要一些转换:

代码语言:javascript
运行
复制
$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()的功能,中间结果是:

代码语言:javascript
运行
复制
x[Day1][Morning]=mutton&x[Day1][Evening]=Juice&x[Day2][Morning]=burger&x[Day2][Evening]=pizza

解析上述字符串将产生一个具有单个根元素x的数组。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21746826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档