Php foreach中json解码后echo数组出现问题
我在数据库的一行中有这个Php foreach中json解码后echo数组出现问题,php,arrays,codeigniter,json,Php,Arrays,Codeigniter,Json,我在数据库的一行中有这个json encode,我希望在foreach中一起使用echo值name\u r和units和price\u change,怎么样 [{ "name_r": "saeed", "units": ["salam", "11", "11", "khobe", "22", "22", "salam"], "price_change": ["33", "33", "33", "44", "44", "44"] }, { "name_r": "sa
json encode
,我希望在foreach中一起使用echo值name\u r
和units
和price\u change
,怎么样
[{
"name_r": "saeed",
"units": ["salam", "11", "11", "khobe", "22", "22", "salam"],
"price_change": ["33", "33", "33", "44", "44", "44"]
}, {
"name_r": "salavat",
"units": ["55", "55", "khobe", "66", "66"],
"price_change": ["77", "77", "77", "88", "88", "88", "99", "99", "99"]
}]
这是我的php:
foreach ($query->result() as $row){
$data = json_decode($row->residence,true);
foreach($data as $datum){
echo $datum['name_r'].'<br>';
echo $datum['units'].'<br>'; //This is line 5
echo $datum['price_change'].'<br>'; ///This is line 6
}
}
为什么第5行和第6行的输出是数组,如何修复它
foreach ($query->result() as $row){
$data = json_decode($row->residence,true);
foreach($data as $datum){
echo $datum['name_r'].'<br>';
foreach($datum['units'] as $d){
echo "\t".$d.'<br>';
}
foreach($datum['price_change'] as $d){
echo "\t\t".$d.'<br>';
}
}
}
foreach($query->result()作为$row){
$data=json_decode($row->residence,true);
foreach($数据作为$数据){
echo$datum['name_r']。
;
foreach($datum['units']作为$d){
回显“\t”。$d.
”;
}
foreach($datum['price_change']为$d){
回显“\t\t”。$d.
”;
}
}
}
编辑:
我们要恢复的元素是数组,因此有必要循环打印…也许您可以内爆单位并更改数组的价格,以避免在主数组中使用更多的foreach
foreach ($query->result() as $row){
$data = json_decode($row->residence,true);
foreach($data as $datum){
echo $datum['name_r'].'<br>';
echo implode(',', $datum['units']).'<br>'; //This is line 5 as string, separated by ','
echo implode(',', $datum['price_change']).'<br>'; ///This is line 6, same as line 5
}
}
foreach($query->result()作为$row){
$data=json_decode($row->residence,true);
foreach($数据作为$数据){
echo$datum['name_r']。
;
echo内爆(',',$datum['units'])。
';//这是第5行作为字符串,用','分隔
echo内爆(',',$datum['price_change'])。
';///这是第6行,与第5行相同
}
}
你应该试试这两种方法,看看哪一种消耗的资源更少。你还应该解释为什么会发生这种情况。@Alfonso Rubalcava-谢谢,除了foreach没有其他方法吗?Jenifer:有几种方法可以做到
foreach
很简单;)如果您不需要与数据交互,@CoBaLt2760选项也可以使用。
foreach ($query->result() as $row){
$data = json_decode($row->residence,true);
foreach($data as $datum){
echo $datum['name_r'].'<br>';
echo implode(',', $datum['units']).'<br>'; //This is line 5 as string, separated by ','
echo implode(',', $datum['price_change']).'<br>'; ///This is line 6, same as line 5
}
}