2014-01-29 183 views
0

我瘋了,這個我怎麼做一個foreach回聲返回slug值。php多維數組獲得價值

這是我的數組:[{"id":1,"catid":"digital-art","scategory":"3-Dimensional Art","slug":"3-dimensional-art","created_at":"2014-01-29 12:17:21","updated_at":"0000-00-00 00:00:00"}]

的print_r返回此:

Array 
(
    [0] => stdClass Object 
     (
      [id] => 1 
      [catid] => digital-art 
      [scategory] => 3-Dimensional Art 
      [slug] => 3-dimensional-art 
      [created_at] => 2014-01-29 12:17:21 
      [updated_at] => 0000-00-00 00:00:00 
     ) 

) 
+0

你有沒有使用json_decode解析它? – Yani

+0

不,我沒有,它在一個類中,一旦我使用JSON解碼,它返回一個錯誤。我只是做了一個打印r我更新了代碼 – cppit

回答

2

這不是一個「數組」,而是一個JSON fromatted字符串。你我的

$myArray = json_decode('[{"id":1,"catid":"digital-art","scategory":"3-Dimensional Art","slug":"3-dimensional-art","created_at":"2014-01-29 12:17:21","updated_at":"0000-00-00 00:00:00"}]', true); 

解析到一個數組這其中最後一個參數將顯示在將其轉換爲一個關聯數組:

Array 
(
    [0] => Array 
     (
      [id] => 1 
      [catid] => digital-art 
      [scategory] => 3-Dimensional Art 
      [slug] => 3-dimensional-art 
      [created_at] => 2014-01-29 12:17:21 
      [updated_at] => 0000-00-00 00:00:00 
     ) 

) 

,這將遍歷

foreach ($myArray[0] as $key => $value) { ... 
3

按你的新評論更新時間:

根據新print_r,你的數據已經是一個JSON對象格式所以不需要再次解析(jsode_decode()將失敗)。

假設你的對象的名稱是$data,您可以通過訪問其數據:

foreach ($data as $item) { 
      echo $item->{'slug'}; 
      echo $item->slug;//same thing 
} 

希望這有助於!

+0

謝謝我一直在拉我的頭髮,每當我做解碼時它都會返回一個錯誤! – cppit

+0

是的,我覺得你... json_decode只會對你想要轉換爲對象的字符串起作用。處理JSON時,請始終執行var_dump/print_r來查看數據類型。 – Yani

+0

@fogsy你標記爲正確的答案不是正確的答案,因爲json_decode()會失敗。 – Yani