Перевести массив в объект php

Конвертирование массива в объект в PHP

Как известно PHP — это слаботипизированный язык, поэтому в нем большая часть преобразования типов осуществляются автоматически. Но иногда необходимо преобразовать один тип данных в другой, как например массив в объект.

Зачем это может понадобиться? Например, как известно в PHP есть суперглобальный массив $_REQUEST, который содержит все переменные переданные скрипту в url адресе. Так вот, эти данные нам необходимо предварительно очистить и привести к какому-то общему виду. Вот здесь-то можно использовать преобразование массива в объект в PHP.

В самом простом случаем преобразовать массив в объект в PHP можно следующим образом:

// если нажата кнопка отправки формы
if( $req -> btnSearch )
$cmd = »;
switch($req -> type)

case ‘phone’:
$cmd = Phone:class;

Но это в том случае, если массив одномерный. А что, в массиве есть еще другие массивы? В этом случае нам поможет рекурсия:

function arrayToObject($array)
$object = new stdClass();
return array2object($array,$object);
>

// многомерный массив
$array = [
‘hello’ => ‘1’,
‘open2’ => ‘2’,
‘object’ => [
‘obj’ => ‘inner’,
‘inner3’ => [
‘object3’ => ‘Inner’
]
]
];

// вызываем
$req = arrayToObject($array);
print_r($req);

stdClass Object
(
[hello] => 1
[open2] => 2
[object] => stdClass Object
(
[obj] => inner
[inner3] => stdClass Object
(
[object3] => Inner
)

Теперь можно обращаться к свойствам объекта следующим образом:

print $req -> object -> inner3 -> object3;

Вот таким образом, можно конвертировать (одномерный/многомерный) массив в объект в PHP.

Создано 13.08.2019 09:59:15

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 0 ):

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.

    Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Результат

    0: Вселенная (Universe) galaxy: Млечный путь (Milky way) planetary-system: Солнечная система (Solar system) planet: Земля (Earth) continent: Европа (Europe) country: Россия (Russia) city: Москва (Moscow)

    Категории

    Читайте также

    • Сортировать числовой массив (JavaScript)
    • Умножить массив на число (PHP)
    • Массив в строку через разделитель (PHP)
    • Массив в строку (JavaScript)
    • foreach vs array_walk (PHP)
    • Строку в массив (JavaScript)
    • Цикл в обратном порядке (PHP)
    • Массив уникальных значений (JavaScript)
    • Количество элементов ассоциативного массива (JavaScript)
    • Ассоциативный массив в JavaScript
    • Как записать массив в файл (PHP)
    • Заполнить массив случайными числами (PHP)

    Комментарии

    А вот тут описан обратный вариант Преобразование объекта PHP в ассоциативный массив
    http://q-answer.ru/questions/preobrazovanie-ob-ekta-php-v-associativnyy-massiv-36689.html

    Вход на сайт

    Введите данные указанные при регистрации:

    Социальные сети

    Вы можете быстро войти через социальные сети:

    Источник

    Преобразование массива в объект в PHP. Как скопировать массив в PHP

    В этой статье поговорим, как преобразовать массив в объект и как создать ссылку на массив и скопировать его. Начнём с преобразования — здесь нам поможет приведение массива к типу object. Как только мы выполним преобразование массива в тип object, произойдёт создание нового экземпляра встроенного в PHP класса stdClass.

    1. Преобразование массива

    Итак, представьте, что у нас есть ассоциативный массив, и мы желаем преобразовать его в объект.

     
    php // наш исходный массив $array = array( 0 => 'Вселенная', 'galaxy' => 'Млечный путь', 'planetary-system' => 'Солнечная система', 'planet' => 'Земля', 'continent' => 'Европа', 'country' => 'Россия', 'city' => 'Москва' ); // приведём массив к типу object $object = (object)$array; // выведем массив print_r($object); 

    Теперь посмотрим на stdClass

     
    stdClass Object ( [0] => Вселенная [galaxy] => Млечный путь [planetary-system] => Солнечная система [planet] => Земля [continent] => Европа [country] => Россия [city] => Москва ) 

    Обращаемся к членам объекта в PHP

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

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

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

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

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

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

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

     
    php foreach ($object as $key => $value)  echo $key . ': ' . $value . '
    '
    ; >
     
    0: Вселенная (Universe) galaxy: Млечный путь (Milky way) planetary-system: Солнечная система (Solar system) planet: Земля (Earth) continent: Европа (Europe) country: Россия (Russia) city: Москва (Moscow) 

    2. Создание ссылки и копирование массива

    Теперь перейдём ко второй части нашей статьи. На самом деле, скопировать массив в PHP несложно:

     
    php $array = array("one", "two", "three"); print_r($array); $new_array = $array; unset($array[0]); echo "
    "
    ; print_r($new_array); ?>

    zcPOXrtGT24_1-20219-5aecd1.jpg

    Смотрим результат:

    Что касается создания ссылки на массив в PHP, то нам надо всего лишь добавить амперсант:

     
    php $array = array("one", "two", "three"); print_r($array); $new_array = &$array; unset($array[0]); echo "
    "
    ; print_r($new_array); ?>

    Cju37uyKMNE_1-20219-097678.jpg

    На этом всё, приобрести более глубокие навыки PHP-программирования вы сможете на наших курсах:

    Источник

    Читайте также:  Sqrt python math domain error
    Оцените статью