PHP

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

Сегодня столкнулся с ситуацией, когда необходимые данные приходят в виде массива, а должны быть объектом. Вот нашел несколько способов перековертировать массив в объект:

Самый простой вариант, который сразу приходит в голову — это явное приведение к типу:
$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);
Теги:
массив, объект
Добавлено: 22 Сентября 2013 09:50:21 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...