API bing объектов стандартного класса

#php

#php

Вопрос:

Я пытаюсь взять из bing api связанные результаты и написать скрипт, который принимает меня с помощью print_r ($value) это

 Array
(
    [0] => stdClass Object
        (
            [__metadata] => stdClass Object
                (
                    [uri] => https://api.datamarket.azure.com/Data.ashx/Bing/Search/v1/RelatedSearch?Market='en-US'amp;Query='car'amp;$skip=0amp;$top=1
                    [type] => RelatedSearchResult
                )

            [ID] => 8bbe5043-f85b-41b3-b044-3649628fc5cf
            [Title] => Cars Games
            [BingUrl] => http://www.bing.com/search?q=Cars Games
        )

    [1] => stdClass Object
        (
            [__metadata] => stdClass Object
                (
                    [uri] => https://api.datamarket.azure.com/Data.ashx/Bing/Search/v1/RelatedSearch?Market='en-US'amp;Query='car'amp;$skip=1amp;$top=1
                    [type] => RelatedSearchResult
                )

            [ID] => b9df73ab-c410-4480-b172-2719643d1120
            [Title] => Car Pictures
            [BingUrl] => http://www.bing.com/search?q=Car Pictures
        )

)
  

Как я могу взять [Title] и [BingUrl] из этого массива? Спасибо.

Комментарии:

1. разве это не работает $array[0]->Title и $array[0]->BingUrl

Ответ №1:

Используется [] для доступа к элементам массива и используется -> для доступа к элементам объекта.

В вашем случае это было бы $arr[$index]->Title и $arr[$index]->BingUrl

Большинство API предоставляют результаты в формате JSON, поэтому вы можете избавить себя от некоторой головной боли, используя json_decode($api_result, 1) для декодирования их как массив вместо объекта.

Ответ №2:

Если значение $ равно массиву, вы можете использовать этот код

 foreach ($value as $item)
{
     echo $item->Title;
     echo $item->BingUrl
}