作者yongb (火系见习魔法师 )
看板PHP
标题[请益] PHP抓json後使用foreach问题
时间Tue Nov 1 23:02:38 2016
最近用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回圈但看起来好丑,也不太想用
各位大大有别的思路吗? 小弟在此先谢过
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.46.94.61
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1478012562.A.AE9.html
※ 编辑: yongb (114.46.94.61), 11/01/2016 23:07:30
1F:→ MOONRAKER: 当然是物件在阵列里面,你json写得明明白白 11/01 23:35
2F:→ MOONRAKER: 到底是有什麽奇怪什麽囧的 11/01 23:35
3F:→ MOONRAKER: 老实说,在学习阶段,随便你用什麽都无所谓 11/01 23:36
4F:→ MOONRAKER: 反正没有犯错是学不到东西的,等你写大一点的程式再来 11/01 23:40
5F:→ MOONRAKER: 检讨,那之前你怎麽「很不想」「不太想」都悉听尊便 11/01 23:42
可是我var_dump($testjson) //有加true
跟 var_dump($value)印出不一样的东西耶
我在研究一下吧
6F:推 shadowjohn: 刚好跟你相反,我是必加 ,true 11/01 23:46
※ 编辑: yongb (114.46.94.61), 11/02/2016 00:28:57
7F:→ zoko741235: foreach($testjson->test as ... ) 11/02 01:35
!!!!!!!!!!!!!!!!!!!!!!!!!!!!
这 !!!!
我怎麽就没想到....我马上试试
谢谢大大
※ 编辑: yongb (114.46.90.135), 11/02/2016 17:27:27