Массив объектов stdClass внутри другого массива

#php #arrays #json #foreach #stdclass

#php #массивы #json #foreach #стандартный класс

Вопрос:

Я пытаюсь получить информацию из $ array1 ниже.

Я без проблем получаю название места проведения и адрес местоположения, выполнив:

 $array2 = array();
$array3 = array();
foreach($array1 as $item){

                 $array2[] = $item->venue->name;
                 $array3[] = $item->venue->location->address;
}
  

Но теперь мне нужно получить URL фотографий, и я не знаю, как это сделать.

Миллион благодарностей!

$array1:

 Array
(
    [0] => stdClass Object
        (
               [venue] => stdClass Object

                (

                    [name] => a name
                    [location] => stdClass Object
                        (
                            [address] => main street

                        )


                )

            [photos] => stdClass Object
                (
                    [count] => 1
                    [items] => Array
                        (
                            [0] => stdClass Object
                                (

                                    [url] => http://folder/photo1.jpg

                    .
                    .
                    )))
.
.
  

Ответ №1:

 $array1[0]->photos->items[0]->url
  

Помните — вы получаете доступ к массивам с помощью [index] круглых скобок, к объектам со -> стрелками.

Ответ №2:

Непроверенный код:

 $array2 = array();
$array3 = array();
$photos = array();
foreach($array1 as $item){
    $array2[] = $item->venue->name;
    $array3[] = $item->venue->location->address;

    $item_photo_urls = array();
    foreach($item->photos->items as $photo){
        $item_photo_urls[] = $photo->url;
    }

    $photos[] = $item_photo_urls;
}
  

Теперь у вас есть третий массив под названием photos , который содержит все URL-адреса фотографий.

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

1. Ты опередил меня в этом oned для цикла, который проверяет наличие нескольких изображений и не использует $ array4 в качестве имени переменной ; o)

Ответ №3:

Попробуйте это :

 $url = $item->photos->items[0]->url;