Convertir objeto PHP en matriz asociativa

Subodh Poudel 20 noviembre 2021
  1. Utilice la palabra clave array para encasillar el objeto de StdClass para convertirlo en un array asociativa en PHP
  2. Utilice el objeto de StdClass dentro de una clase definida por el usuario para convertir el objeto en un array asociativa en PHP
  3. Utilice las funciones json_encode() y json_decode() para convertir el objeto en un array asociativa en PHP
Convertir objeto PHP en matriz asociativa

Introduciremos un método para convertir el objeto PHP en un array asociativa encasillando los objetos de StdClass usando la palabra clave array. Usaremos la función var_dump() para mostrar el array asociativa.

El segundo enfoque demuestra otro método para convertir el objeto PHP en un array asociativa creando una StdClass en el constructor de una clase definida por el usuario. Convertiremos el objeto en el array asociativa como en el primer método usando la palabra clave array. Este método sigue el enfoque orientado a objetos.

También presentaremos otro método para convertir el objeto en un array asociativa en PHP usando las funciones json_encode() y json_decode(). Usaremos el StdClass para crear el objeto y las propiedades dinámicas.

Utilice la palabra clave array para encasillar el objeto de StdClass para convertirlo en un array asociativa en PHP

Podemos crear la clase vacía StdClass para crear un objeto en PHP y usar el objeto para crear propiedades. El objeto de la clase puede acceder directamente a las propiedades. También puede crear propiedades dinámicas para la clase. Podemos usar el objeto array para encasillar el objeto en un array. La función var_dump() descarga la información sobre el tipo y los valores del array.

Por ejemplo, cree un objeto $object de la StdClass utilizando el operador new. Cree dos propiedades usando el $object llamado car1 y car2. Asigne las propiedades con los valores porsche y bugatti. Utilice la palabra clave array para encasillar la variable $object. Envuelva la palabra clave array entre paréntesis antes de la variable $object y descargue el valor usando la función var_dump(). El siguiente ejemplo convierte los objetos en un array asociativa, como se muestra en la sección de salida. Muestra los pares de clave y valor para cada elemento del array.

Código de ejemplo:

#php 7.x 
<?php
$object = new StdClass;
$object->car1 = "porsche";
$object->car2 = "bugatti";
var_dump( (array) $object );
?>

Producción :

array(2) { ["car1"]=> string(7) "porsche" ["car2"]=> string(7) "bugatti" }

Utilice el objeto de StdClass dentro de una clase definida por el usuario para convertir el objeto en un array asociativa en PHP

Podemos crear una instancia de StdClass en el constructor de la clase y usar la palabra clave array para convertir el objeto de las clases en un array asociativo. Podemos crear una clase y definir algunas propiedades de la misma. El constructor de la clase inicializa las propiedades de la clase a valores específicos. Podemos crear un objeto de la StdClass y asignarle una de las propiedades de la clase. El operador new, junto con la clase, invoca al constructor. Podemos usar la palabra clave array justo antes de la invocación para convertir el objeto de la clase en un array asociativa.

Por ejemplo, cree una clase Motorcycle. Cree tres propiedades de clase con el modificador de acceso private como $name, $color y $type. Cree un constructor de la clase y dentro del constructor inicialice los valores de las propiedades. Escriba Husky para el name, white para el color y cree un objeto de la StdClass para el type. Utilice la palabra clave $this para inicializar las propiedades. Fuera de la clase, invoque la clase Motorcycle y use la palabra clave array para encasillar antes de invocar. Utilice la función var_dump() para volcar la información sobre el array tipocada.

Código de ejemplo:

#php 7.x 
class Motorcycle{
    private $name;
    private $color;
    private $type;
    public function __construct(){
        $this->name = "Husky";
        $this->color = "white";
        $this->type = new StdClass;
    }
}
var_dump( (array) new Motorcycle );

Producción :

array(3) { ["Motorcyclename"]=> string(5) "Husky" ["Motorcyclecolor"]=> string(5) "white" ["Motorcycletype"]=> object(stdClass)#2 (0) { } }

Utilice las funciones json_encode() y json_decode() para convertir el objeto en un array asociativa en PHP

La función json_encode() codifica un valor para el objeto JSON y la función json_decode() convierte el objeto JSON en el objeto PHP. El valor booleano, el segundo parámetro de la función json_decode(), indica qué objeto JSON debe convertirse. El valor true convertirá el objeto JSON en un array asociativa, mientras que el valor false lo convertirá en un objeto PHP.

Por ejemplo, cree un objeto de StdClass y asígnelo a la variable $object. Nombra dos valores de la propiedad del objeto como Mustang y Manang y guárdalos en la variable place1 y place2. Utilice la función json_encode() en la variable $object y almacene el valor en la variable $json. Luego, use la función json_decode() en la variable $json y use el valor booleano true como segundo parámetro. Almacene el valor en la variable $array. Volcar la variable usando la función var_dump().

En el siguiente ejemplo, la variable $object contiene el objeto StdClass. La función json_ecode() convierte el objeto en la cadena JSON. La función json_decode() convierte la cadena JSON en el array asociativa.

Código de ejemplo:

#php 7.x 
<?php
$object = new StdClass;
$object->place1 = "Mustang";
$object->place2 = "Manang";
$json= json_encode($object);
$array = json_decode($json, true);
var_dump($array);
?>

Producción :

array(2) { ["place1"]=> string(7) "Mustang" ["place2"]=> string(6) "Manang" }
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Artículo relacionado - PHP Object