Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

convertir array en obejetos

Estas en el tema de convertir array en obejetos en el foro de Frameworks y PHP orientado a objetos en Foros del Web. andaba necesitando pasar un arreglo en un objeto y viceversa googleando un poco encontre dos formas distintas y me gustaría saber cual de las dos ...
  #1 (permalink)  
Antiguo 05/01/2010, 14:56
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
convertir array en obejetos

andaba necesitando pasar un arreglo en un objeto y viceversa googleando un poco encontre dos formas distintas y me gustaría saber cual de las dos es la mas optima de usar:

forma 1:
array -> objeto
Código PHP:
Ver original
  1. $objetos = (object)$_POST;  
  2. print_r($objetos);
obejto -> array
Código PHP:
Ver original
  1. function obj2array($object)  
  2.   {  
  3.      if(is_array($object) || is_object($object))  
  4.      {  
  5.        $array = array();  
  6.       foreach($object as $key => $value)  
  7.       {  
  8.         $array[$key] = obj2array($value);  
  9.      }  
  10.       return $array;  
  11.     }  
  12.      return $object;  
  13.  }  
  14.  
  15. $arrays = obj2array($objetos);  
  16.  print_r($arrays);

forma 2:
array -> objeto
Código PHP:
Ver original
  1. function array_to_object($array = array())
  2. {
  3. return (object) $array;
  4. }
objeto -> array
Código PHP:
Ver original
  1. function object_to_array($object)
  2. {
  3.  if(is_array($object) || is_object($object))
  4.   {
  5.    $array = array();
  6.    foreach($object as $key => $value)
  7.   {
  8.     $array[$key] = object_to_array($value);
  9.     }
  10.    return $array;
  11.   }
  12.   return $object;
  13. }

espero sus opiniones, salu2
  #2 (permalink)  
Antiguo 05/01/2010, 15:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: convertir array en obejetos

pues, de hecho... la única que sirve es la primera, porque en los demás ejemplos no veo donde instancia objeto alguno...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 05/01/2010, 15:45
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: convertir array en obejetos

los ejemplo de la forma 2 los saque de esta pagina:
http://www.calinsoft.com/2008/09/con...versa-php.html
  #4 (permalink)  
Antiguo 07/01/2010, 08:31
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: convertir array en obejetos

si usas php 5.3 podes usar el SPL osea librerias destinadas a los objetos
ejemplo
Código PHP:
Ver original
  1. $miObjeto = new ArrayObject($_POST
  2. );
  3. //aca le ponemos un Flag que indique que el array que tiene sea convertido a Objetos
  4. $miObjeto->setFlags(ArrayObject::ARRAY_AS_PROPS);

si prefieres Create una Clase que haga esto y Ademas retorne un Valor Nulo en caso de que el methodo no exista bueno yo hce esto hace 8 meses que aun sigo usando
Código PHP:
Ver original
  1. <?php
  2. /**
  3.  * @version 1.0
  4.  * @author tuadmin
  5.  * @copyright 2009
  6.  * @file Object
  7.  */
  8. class Object extends ArrayObject
  9. {
  10.     /**
  11.      * @param array $array
  12.      */
  13.     public function __construct($array)
  14.     {
  15.         parent::__construct($array);
  16.         $this->setFlags(ArrayObject::ARRAY_AS_PROPS);
  17.     }
  18.    
  19.     public function __get($name)
  20.     {
  21.         return null;
  22.     }
  23. }
y con mi clase simplemeto hago
Código PHP:
Ver original
  1. <?php
  2. $obj = new Object(array(
  3. "Nombre" => "Pepe el Wapo",
  4. "especie" => "humano",
  5. "edad" => "25",
  6. "trabajo" => "baila por unas monedas"
  7. ));
  8. ?>
buenoe spero te haya servido aunque el uso de los cast osea (object) son buenas si noe xiste el metodo en cuestion te daran error un fatal o depende de tu version de php pero bueno mi clase Object simplemente lo que ahce es que si no encuentra el objeto te retorna un valor null

bye bye
  #5 (permalink)  
Antiguo 07/01/2010, 09:44
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: convertir array en obejetos

muchas gracias tuadmin, lo voy a testear
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 07:55.