Получить поля объекта в массиве php

242
09 апреля 2017, 04:41

Есть массив. Каждый элемент массива представляет собой объект с двумя полями. Пример

[{"type": "photo", "photo": {photo}}, {"type": "audio", "audio": {audio}}]

Как мне из этого получить поля объектов: type и photo (или audio, без разницы)?

$a['type'] не получается

Answer 1

Вы привели строку просто для демонстрации? Вообще к свойствам объекта обращаются так:

$a->type

Соответственно из массива

$ar[0]->type
Answer 2

Как то так:

$obj_array = json_decode('[{"type": "photo", "photo": {"some": "content"}}, {"type": "audio", "audio": {"some": "content"}}]');
print_r($obj_array);
$reult = array();
    foreach($obj_array as $obj) {
        $type = $obj->type;
        $reult[$obj->type] = $obj->$type;
    }
print_r($reult);

Вывод:

Array
(
    [0] => stdClass Object
        (
            [type] => photo
            [photo] => stdClass Object
                (
                    [some] => content
                )
        )
    [1] => stdClass Object
        (
            [type] => audio
            [audio] => stdClass Object
                (
                    [some] => content
                )
        )
)
Array
(
    [photo] => stdClass Object
        (
            [some] => content
        )
    [audio] => stdClass Object
        (
            [some] => content
        )
)
READ ALSO
Русская дата, +n дней

Русская дата, +n дней

Есть ли более лучшее решение?

206
Как получить строку из терминала в скрипт?

Как получить строку из терминала в скрипт?

Собираюсь скриптом php отправлять AT команду usb модему на получение баланса по ussdС командами разобрался, ответ тоже получаю (но зашифрованный)

209
POST-запрос для авторизации в facebook (cURL PHP)

POST-запрос для авторизации в facebook (cURL PHP)

не получается авторизоваться в facebook с помощью CURL'а

356