[請益] PHP抓json後使用foreach問題

看板PHP作者 (火系見習魔法師 )時間8年前 (2016/11/01 23:02), 8年前編輯推噓1(106)
留言7則, 3人參與, 最新討論串1/3 (看更多)
最近用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://www.ptt.cc/bbs/PHP/M.1478012562.A.AE9.html ※ 編輯: yongb (114.46.94.61), 11/01/2016 23:07:30

11/01 23:35, , 1F
當然是物件在陣列裡面,你json寫得明明白白
11/01 23:35, 1F

11/01 23:35, , 2F
到底是有什麼奇怪什麼囧的
11/01 23:35, 2F

11/01 23:36, , 3F
老實說,在學習階段,隨便你用什麼都無所謂
11/01 23:36, 3F

11/01 23:40, , 4F
反正沒有犯錯是學不到東西的,等你寫大一點的程式再來
11/01 23:40, 4F

11/01 23:42, , 5F
檢討,那之前你怎麼「很不想」「不太想」都悉聽尊便
11/01 23:42, 5F
可是我var_dump($testjson) //有加true 跟 var_dump($value)印出不一樣的東西耶 我在研究一下吧

11/01 23:46, , 6F
剛好跟你相反,我是必加 ,true
11/01 23:46, 6F
※ 編輯: yongb (114.46.94.61), 11/02/2016 00:28:57

11/02 01:35, , 7F
foreach($testjson->test as ... )
11/02 01:35, 7F
!!!!!!!!!!!!!!!!!!!!!!!!!!!! 這 !!!! 我怎麼就沒想到....我馬上試試 謝謝大大 ※ 編輯: yongb (114.46.90.135), 11/02/2016 17:27:27
文章代碼(AID): #1O6AwIhf (PHP)
文章代碼(AID): #1O6AwIhf (PHP)