Конвертация массива в объект
Сегодня столкнулся с ситуацией, когда необходимые данные приходят в виде массива, а должны быть объектом. Вот нашел несколько способов перековертировать массив в объект:
Самый простой вариант, который сразу приходит в голову — это явное приведение к типу:
$object = (object)$array;
Следующий вариант делает ковертацию массива в цикле:
$obj= new stdClass();
foreach ($array as $k=> $v) {
$obj->{$k} = $v;
}
Следующий вариант — это развитие пердыдущего с помощью рекурсии:
function convert_array_to_object($array){
$obj= new stdClass();
foreach ($array as $k=> $v) {
if (is_array($v)){
$v = convert_array_to_object($v);
}
$obj->{strtolower($k)} = $v;
}
return $obj;
}
И самый простой способ, но не самый красивый — это использовать функцию json_decode вот таким вот образом:
$object = json_decode(json_encode($array), FALSE);
Комментарии:
Нету комментариев для вывода...