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

Несколько способов преобразования массива в объект.

Способ #1. Подходит для преобразования простого одномерного массива:

$array = [
    'name' => 'John',
    'age' => 30,
    'address' => 'New York',
];

$obj = (object) $array;

var_dump($obj->name); // John

Способ #2. Подходит для преобразования более сложных (многомерных) массивов:

$array = [
    'name' => 'John',
    'age' => 30,
    'address' => [
        'city' => 'New York',
        'street' => 'Fulton Street',
  ],
];

$obj = json_decode(json_encode($array), false);

var_dump($obj->address->city); // New York

Способ #3. Подходит для всех массивов (рекурсия):

function arrayToObject(array $array): stdClass
{
  $object = new stdClass();

  foreach ($array as $key => $value) {
    if (is_array($value)) $value = arrayToObject($value);
    $object->$key = $value;
  }

  return $object;
}

$obj = arrayToObject($array);

var_dump($obj->address->city); // New York

Предыдущая заметка

Получить дату в формате d.m.Y
Закрыть