Вот функция для глубокого преобразования массива в объект на месте, использующего внутренний (неглубокий) механизм приведения типов массива к объекту в PHP.
Он создает новые объекты только при необходимости, сводя к минимуму дублирование данных.
function toObject($array) {
foreach ($array as $key=>$value)
if (is_array($value))
$array[$key] = toObject($value);
return (object)$array;
}
Предупреждение - не используйте этот код, если существует риск получения циклических ссылок.