Преобразование массива в объект в 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Следующая заметка
Закодировать в json по-нормальному