[请益] PHP抓json后使用foreach问题

楼主: yongb (火系见习魔法师 )   2016-11-01 23:02:38
最近用PHP玩json的时候发现
要使用foreach的时候居然无法循环列出
以下是code
<?php
1 $json='
2 {
3 "test":[
4 {
5 "pid":34,
6 "name":cat
7 },
8 {
9 "pid":35,
10 "name":dog
11 }
12 ]
13 }';
14
15 $testjson=json_decode($json);
16 echo $testjson->test[0]->pid."<br/>";
17 foreach($testjson as $key =>$value){
18 $value[0]->pid;
19 }
?>
一开始15行传到testjson是物件
可是当使用foreach后传到$value的时候就变成一种奇怪的状态
用var_dump看了一下
似乎是物件在阵列里面?
更让我惊讶的是$key里面居然是test冏
然后pid只跑出一笔,可是不$value[0]又会错误,被那个test卡著
我查了一下有两个解决方式
1.改15行的json_decode($json,true)直接变成阵列
可是我又很不想用阵列
2.使用for循环但看起来好丑,也不太想用
各位大大有别的思路吗? 小弟在此先谢过
作者: MOONRAKER (㊣牛鹤鳗毛人)   2016-11-01 23:35:00
当然是物件在阵列里面,你json写得明明白白到底是有什么奇怪什么囧的老实说,在学习阶段,随便你用什么都无所谓反正没有犯错是学不到东西的,等你写大一点的程式再来检讨,那之前你怎么“很不想”“不太想”都悉听尊便
作者: shadowjohn (转角遇到爱)   2016-11-01 23:46:00
刚好跟你相反,我是必加 ,true
作者: zoko741235 (台北金城武)   2016-11-02 01:35:00
foreach($testjson->test as ... )

Links booklink

Contact Us: admin [ a t ] ucptt.com