在PHP中将字符串转换为数组(Converting string into array in php)

我有像下面的字符串

["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);

我知道上面的代码真的很愚蠢:/。是否有适当的解决方案?

I have string like below

["Day1"]["Morning"]=mutton&["Day1"]["Evening"]=Juice&["Day2"]["Morning"]=burger&["Day2"]["Evening"]=pizza

Which i am trying to convert into array like below

$arr["Day1"]["Morning"] = "mutton";

$arr["Day1"]["Evening"] = "Juice";

$arr["Day2"]["morning"] = "burger";

$arr["Day2"]["evening"] = "pizza";

I tried something like below.

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

I know above code is really dumb :/ .Is there any proper solution for this ?

原文:https://stackoverflow.com/questions/21746826

更新时间:2020-01-22 16:27

最满意答案

你可以这样做...

$str='["Day1"]["Morning"]=mutton&["Day1"]["Evening"]=Juice&["Day2"]["Morning"]=burger&["Day2"]["Evening"]=pizza';

$arr = explode('&',$str);

foreach($arr as $v)

{

$valarr=explode('=',$v);

preg_match_all('/"(.*?)"/', $valarr[0], $matches);

$narr[$matches[1][0]][$matches[1][1]]=$valarr[1];

}

print_r($narr);

OUTPUT :

Array

(

[Day1] => Array

(

[Morning] => mutton

[Evening] => Juice

)

[Day2] => Array

(

[Morning] => burger

[Evening] => pizza

)

)

你可以访问像echo $arr["Day1"]["Morning"]打印mutton

You could do like this...

$str='["Day1"]["Morning"]=mutton&["Day1"]["Evening"]=Juice&["Day2"]["Morning"]=burger&["Day2"]["Evening"]=pizza';

$arr = explode('&',$str);

foreach($arr as $v)

{

$valarr=explode('=',$v);

preg_match_all('/"(.*?)"/', $valarr[0], $matches);

$narr[$matches[1][0]][$matches[1][1]]=$valarr[1];

}

print_r($narr);

OUTPUT :

Array

(

[Day1] => Array

(

[Morning] => mutton

[Evening] => Juice

)

[Day2] => Array

(

[Morning] => burger

[Evening] => pizza

)

)

You could access like echo $arr["Day1"]["Morning"] which prints mutton

2014-02-13

相关问答

看起来你有魔术引号。 禁用它可以阻止大量的反斜杠。 Looks like you have magic quotes on. Disable it to stop the massive multitude of backslashes.

你可以试试 $data = Array(

1 => "Laravel",

2 => "Volta",

3 => "Web",

4 => "Design",

5 => "Development"

);

array_walk($data, function (&$item, $key) {

$item = array("id"=>$key,"text"=>$item);

});

print(json_encod

...

你应该使用array_map而不是array_walk : $numArray = array_map('intval', $numArray);

如果您仍想使用array_walk - 请参阅说明的手册 : 如果回调需要使用数组的实际值,请将回调的第一个参数指定为引用。 然后,对这些元素所做的任何更改都将在原始数组中进行。 由于intval函数不能与引用一起使用,因此需要将其包含在其他逻辑中,例如: array_walk($numArray, function(&$v){ $v = intva

...

使用JSON: echo json_encode($yourarray);

echo json_decode($_GET['fromjs']);

Use JSON: echo json_encode($yourarray);

echo json_decode($_GET['fromjs']);

那么,如果你的字符串格式化的很好,这里有一个可以解释的函数: function($text){

$arr = [];

$category = "";

$subcategory = "";

foreach (explode("\n", $text) as $line) {// For every line

if (startsWith($line, ' ')){

if (startsWith($line, '

...

你可以这样做... <?php

$str='["Day1"]["Morning"]=mutton&["Day1"]["Evening"]=Juice&["Day2"]["Morning"]=burger&["Day2"]["Evening"]=pizza';

$arr = explode('&',$str);

foreach($arr as $v)

{

$valarr=explode('=',$v);

preg_match_all('/"(.*?)"/', $valarr[0],

...

从PHP 5.4你可以简单地eval:eval(“\ $ f = ['method'=>'post','action'=>'#'];”); 后续代码var_dump($ F); 对于olders,你必须稍微修改一下字符串,将第一个“[”改为“array(”和“last”]“改为”)“”。 问题是如何在PHP中从var_dump的输出创建一个数组? From php 5.4 you can simply eval: eval("\$f=['method'=>'post','action'=>'#']

...

$php_object = json_decode($javascript_array_string)

这将返回一个对象,其属性对应于javascript数组的属性。 如果需要关联数组,请将true作为第二个参数传递给json_decode $php_array = json_decode($javascript_array_string, true)

另外还有一个json_encode函数。 $php_object = json_decode($javascript_array_string

...

尝试这个 $var = '{"msg": "background1.jpg"}';

var_dump($var);

` Try this $var = '{"msg": "background1.jpg"}';

var_dump($var);

`

您可以通过序列化将任何PHP数据类型但资源转换为字符串: $string = serialize($array);

然后再次反序列化为原始形式: $array = unserialize($string);

序列化数组是以字符串形式存在的。 它可以通过反序列化再次转换为数组。 同样_decode于您的数组的json_encode / - _decode : $string = json_encode($array);

$array = json_decode($string);

You ca

...

php 字符串放到数组中,在PHP中将字符串转换为数组(Converting string into array in php)...相关推荐

  1. php将soap返回的xml转成数组,PHP – 在PHP中将XML转换为数组 – 在php中解析soap xml并将其存储在数据库中...

    我想转换soap xml响应并将其存储在数据库中.这是我的XML. 200 example2 ex2 example2@example2.com example2, example2 example2 ...

  2. PHP取出数组中随机一条字符串

    PHP取出数组中随机一条字符串 在接微信支付的时候用到的,随机返回一条字符串作为支付的标题,防止微信支付安全检测. 只是自己简单记录一下,方便下次使用. /*** 取数组中随机一条为支付标题*/fun ...

  3. Python 轻松解决从 K 个字符串数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合。(对比用库和不用库的方法)

    文章目录 一.问题说明 二.解决方法 一.问题说明 问题来源:粉丝的提问 从 K 个字符串数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合(对比用库和不用库的方法) 二.解决方法 iter ...

  4. 从K个数组中任取一个字符串进行按顺序拼接

    完整题目 给定K个字符串数组,从这K个数组中任取一个字符串,按顺序拼接,列出所有可能的字符串组合 样例: input:[['a','b','cd'],['de'],['e','f']] output: ...

  5. vba 跳到下一个循环_VBA野知识分享:从一个数组中取部分值生成新数组,不使用循环的思路...

    从一个数组中取部分值生成新数组,要实现此需求通常都是采用循环的方法来完成,那有没有更简易的思路呢? 借用jscript可以实现,直接取值,不用循环.例如从100000万中元素是取8000个值出来生成新 ...

  6. 编写一个汇编语言程序,将字符串Hello World中的全部小写字母转换为大写字母,并存放回原地址处。

    编写一个汇编语言程序,将字符串"Hello World"中的全部小写字母转换为大写字母,并存放回原地址处. P176 4.10 编程思路:首先DATA段中,定义string存放字符 ...

  7. asp数组中REDIM的用法(动态数组)

    asp数组中REDIM的用法(动态数组) 动态数组里面的一个语句,只能出现在过程里面,可以多次使用.可以改变数组大小,和维数 格式: REDIM [Preserve] 数组名(下标1[下标2....] ...

  8. 数组中哪些常用方法会修改原数组

    一.不会改变原来数组的有: concat() concat() 方法用于连接两个或多个字符串. 该方法没有改变原有字符串,但是会返回连接两个或多个字符串新字符串. every() every() 方法 ...

  9. 利用for循环把遍历数组中的元素依次获取出来 数组笔记及基本知识点

    利用for循环把遍历数组中的元素依次获取出来 数组索引号从0开始 所以i必须从0开始  i<6 <script>var arr = ['blue', 2, true, 4, 5, 6 ...

最新文章

  1. updateStateByKey--word count
  2. 今年蚊子有点慌!有人用100瓶花露水洗澡!
  3. mysql join原理_MySQL的JOIN(二):JOIN原理
  4. 计算机设计思想 —— 总线
  5. 一只青蛙跳向三个台阶_Java版剑指offer编程题第9题--变态跳台阶
  6. 数据存储与访问之——初见SQLite数据库
  7. 运动目标跟踪(九)--Struck跟踪原理
  8. Haxdoors of the Kaspersky Antivirus 6/7
  9. c语言旋转bmp图片程序,C语言实现BMP图像处理(任意角度旋转)
  10. 中兴网络设备交换机路由器查看所有端口光功率命令
  11. 无标度网络的生成模型
  12. 倍加福二维码测试2——C#界面程序开发
  13. 会议室管理系统(参考答案)
  14. Java程序员年薪40W是什么水平?税前还是税后?
  15. 零基础步入数据分析岗,应该怎么开始?
  16. vue项目中使用ramda库
  17. 【Ubantu系统制作U盘安装】
  18. 云服务器ECS的基本概念
  19. ASEMI肖特基二极管1N5819压降是什么意思
  20. Android开发——实现数字时钟

热门文章

  1. PHP截取固定长度字符串函数
  2. 股票杠杆哪个平台好?具备的资质是怎么样的?
  3. 网易云音乐的歌词无法在桌面歌词显示
  4. 给screen的会话改名字
  5. maven文件彻底修改名字 Java文件修改名字
  6. Li feifei How we're teaching computers to understand pictures
  7. 这几年爆火的智能物联网(AIoT),到底前景如何?
  8. id Software公司介绍
  9. java升序排列数组_java 数组升序排列
  10. Kali利用MSF入侵安卓手机