2015-12-21 91 views
4

循環我有以下的關聯數組叫做$woo_post_categoryPHP:問題通過關聯數組

array(1) { [0]=> object(stdClass)#5839 (10) { ["term_id"]=> int(796) ["name"]=> string(20) "Womens Comfort Bikes" ["slug"]=> string(20) "womens-comfort-bikes" 

我通過數組試圖循環,並拉出了名鍵的值關聯。我有以下代碼:

foreach($woo_post_category as $key_category => $value_category) { 
     if ($key_category == 'name') { 
      echo 'Product is in Category:' . ' ' . $value_category; 
     } 
} 

我得到的錯誤:

PHP Catchable fatal error: Object of class stdClass could not be converted to string

任何人都可以指出的問題在此,感謝

+0

您可以使用array_key_value()... –

+0

'$ value_category '是stdClass的對象,你試圖迴應它。嘗試'$ value_category-> term_id'。 – Jigar

+0

你可以發佈完整的數組輸出嗎? – Mirceac21

回答

2

試試這個:

foreach($woo_post_category[0] as $key_category => $value_category) { 
    if ($key_category == 'name') { 
     echo 'Product is in Category:' . ' ' . $value_category; 
    } 
} 

$woo_post_category是包含一個元素的數組,而不是一個Object。

因此,$woo_post_category[0]是數組的第一個元素,這是您的對象。

當使用foreach$key_category是陣列(0)的鍵,是$value_category第一元件的值,並且它是stdClass

所以,當你嘗試運行

if ($key_category == 'name') { 

,你比較stdClass$key_category)和 '名稱'。這就是爲什麼你有這個錯誤。

1

在你的情況看來,$ value_category會作爲對象。

所以你會得到數據如下方式

$ value_category->名稱

$ value_category-> term_id

這樣你就可以糾正,使你的腳本工作狀態。

萬一需要更多幫助,請將腳本傳給我。

感謝 阿米特

1

您已經關聯數組,而不是單維數組所以你的病情是否會像作爲

foreach($woo_post_category as $key_category => $value_category) { 
     if (key_exists('name',$value_category)) { 
      echo 'Product is in Category:' . ' ' . $value_category->name; 
     } 
}