问题中的foreach
问题描述:
JSON解码后的回声阵列我有这个json encode
在数据库中的一行,我想回波值name_r
和units
和price_change
一起在foreach,怎么回事?问题中的foreach
[{
"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
}
}
这个PHP代码输出正是这种
saeed
Array //Output line 5
Array //Output line 6
salavat
Array //Output line 5
Array //Output line 6
为什么在第5行& 6输出Array
,如何解决?
答
也许你会破灭单位和price_change数组,以避免更主要的内部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() 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>';
}
}
}
编辑: ,我们要恢复的元素是数组,因此有必要在一个循环打印到去...
你也应该解释为什么它的发生。 – JohnD
@Alfonso Rubalcava - 谢谢,没有办法,除了foreach? –
@JohnD:编辑,谢谢。 –