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

在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

...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值