2015-12-21 3 views
4

У меня есть следующий ассоциативный массив с именем $woo_post_category:PHP: Issue цикл через ассоциативный массив

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 является Массив с одним элементом, а не объектом.

Итак, $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

так что вы можете исправить это состояние, чтобы сделать ваш скрипт работает.

в случае необходимости помощи, пожалуйста, передайте мне сценарий.

Благодаря Amit

1

Вы имеете ассоциативный массив, а не единственный одномерный массив так ваш, если условие будет вроде как

foreach($woo_post_category as $key_category => $value_category) { 
     if (key_exists('name',$value_category)) { 
      echo 'Product is in Category:' . ' ' . $value_category->name; 
     } 
} 
Смежные вопросы