Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вывод данных из массива - ответ API. Помогите пожалуйста
Форумы портала PHP.SU » PHP » Программирование на PHP » Вывод данных из массива - ответ API. Помогите пожалуйста

Страниц (1): [1]
 

1. yury.seliukou - 08 Марта, 2018 - 15:10:56 - перейти к сообщению
Возвращается посредством API ответ:

PHP:
скопировать код в буфер обмена
  1.  
  2. {
  3.   "result": {
  4.     "Ads": [{  /* AdGetItem */
  5.       "Id": (long),
  6.       "CampaignId": (long),
  7.       "AdGroupId": (long),
  8.       "TextAd": {  /* TextAdGet */
  9.         "Title": (string),
  10.         "Title2": (string), /* nillable */
  11.         "Text": (string),
  12.         "AdExtensions": [{  /* AdExtensionAdGetItem */
  13.           "AdExtensionId": (long), /* required */
  14.           "Type": ( "CALLOUT" | "UNKNOWN" ) /* required */
  15.         }, ... ],
  16.       },
  17.   }
  18. }}
  19.  


Нужно выдернуть массив AdExtensions. Но вечно выдает ошибки:
You can not use an object of type stdClass as an array
Или пустое значение.

Не могу вывести, и через циклы пробовал, и преобразовывать в строку, объекты и другие варианты, не выводит. Наверняка делаю что то не так.

Работа со другими значении в строковом формате выводятся без проблем циклом (таким макаром):
PHP:
скопировать код в буфер обмена
  1. foreach ($responseBody->result->Ads as $ads) {
  2.             $title = $ads->TextAd->Title;
  3.             $counthead2 = mb_strlen($ads->TextAd->Title2, 'utf-8');
  4.             $counttext = mb_strlen($ads->TextAd->Text, 'utf-8');
  5.             $countsimvds = mb_strlen($ads->TextAd->DisplayUrlPath, 'utf-8');
  6.             $countsimv = mb_strlen($ads->TextAd->Title, 'utf-8');
  7.          }


а Вот получить значения массива AdExtensions уже не могу, хотя в ответе они есть. Помогите пожалуйста!
2. armancho7777777 - 08 Марта, 2018 - 17:28:14 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. /...
  2. foreach($ads->TextAd->AdExtensions as $adExtension){
  3.     var_dump($adExtension->AdExtensionId, $adExtension->Type);
  4. }
  5. /...
3. yury.seliukou - 08 Марта, 2018 - 17:43:01 - перейти к сообщению
armancho7777777 пишет:
PHP:
скопировать код в буфер обмена
  1. /...
  2. foreach($ads->TextAd->AdExtensions as $adExtension){
  3.     var_dump($adExtension->AdExtensionId, $adExtension->Type);
  4. }
  5. /...


Спасибо большое за реакцию, но и цикл в цикл погружал и как только не пробовал:
ErrorException [ Notice ]: Undefined property: stdClass::$AdExtensions
4. teleoperator27 - 09 Марта, 2018 - 02:41:34 - перейти к сообщению
У тебя проблемы с типами данных. Например, Ads это массив, Делай var_dump и смотри, ху из ху

 

Powered by ExBB FM 1.0 RC1