Вы можете авторизоваться через ВКонтакте, Фейсбук и оставить комментарий


Преобразовать массив в объект (PHP)

Преобразовать массив в объект можно при помощи приведения его к типу object. После преобразования массива в тип object, будет создан новый экземпляр встроенного класса stdClass.

Преобразование в объект

Например есть ассоциативный массив, который нужно преобразовать в объект.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

// исходный массив
$array = array(
    
=> 'Вселенная (Universe)',
    
'galaxy' => 'Млечный путь (Milky way)',
    
'planetary-system' => 'Солнечная система (Solar system)',
    
'planet' => 'Земля (Earth)',
    
'continent' => 'Европа (Europe)',
    
'country' => 'Россия (Russia)',
    
'city' => 'Москва (Moscow)'
);

// приводим массив к типу object
$object = (object)$array;

// выводим массив
print_r($object);

В результате stdClass

1
2
3
4
5
6
7
8
9
10
stdClass Object
(
    [0] => Вселенная (Universe)
    [galaxy] => Млечный путь (Milky way)
    [planetary-system] => Солнечная система (Solar system)
    [planet] => Земля (Earth)
    [continent] => Европа (Europe)
    [country] => Россия (Russia)
    [city] => Москва (Moscow)
)

Обращение к членам объекта

После преобразования, некоторые элементы объекта (бывшего массива), можно получить как член класса, если они соответствуют правилу именования переменной (Правильное имя переменной должно начинаться с буквы или символа подчеркивания и состоять из букв, цифр и символов подчеркивания в любом количестве).

1
2
3
4
5
6
<?php

// бывший элемент $array['galaxy']
echo $object->galaxy;

// Млечный путь (Milky way)

Переменное имя свойства

Если ключ элемента содержал другие символы, например дефис (-), то получить значение можно при помощи переменного имени свойства.

1
2
3
4
5
6
7
8
9
<?php

echo $object->{"planetary-system"};
// Солнечная система (Solar system)

// или так
$key "planetary-system";
echo 
$object->$key;
// Солнечная система (Solar system)

Числовые ключи

Если ключ элемента был числовым, то получить значение из объекта можно только при помощи итераций foreach

1
2
3
4
5
<?php

foreach ($object as $key => $value) {
    echo 
$key ': ' $value '<br/>';
}

Результат

1
2
3
4
5
6
7
0: Вселенная (Universe)
galaxy: Млечный путь (Milky way)
planetary-system: Солнечная система (Solar system)
planet: Земля (Earth)
continent: Европа (Europe)
country: Россия (Russia)
city: Москва (Moscow)
Опубликовано: 12 ноября 2013  ·  Автор: Артём Фёдоров  ·  5650 просмотров

Категория

ГлавнаяПрограммированиеPHPМассивыПреобразовать массив в объект (PHP)

Чтобы оставить комментарий нужно авторизоваться на сайте
или войти через ВКонтакте или Фейсбук

Войти через ФейсбукВойти через Твиттер

Комментарии

Массивы, PHP, Программирование

© 2010-2017 expange.ru
При полном или частичном копировании статей сайта, ссылка на источник обязательна.

Хотите узнать больше информации, пишите на: artem@expange.ru

Полезное онлайн  ·  Новости  ·  Изображения  ·  Статьи по датам

О проекте  ·  Правила пользования  ·  Представительства

Благодарности и пожелания