массив объекта stdClass внутри другого массива - PullRequest
2 голосов
/ 23 мая 2011

Я пытаюсь получить информацию из $ 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

                    .
                    .
                    )))
.
.

Ответы [ 3 ]

2 голосов
/ 23 мая 2011
$array1[0]->photos->items[0]->url

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

1 голос
/ 23 мая 2011

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

$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-адреса фотографий.

0 голосов
/ 23 мая 2011

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

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