Convertir objeto PHP en matriz asociativa
-
Utilice la palabra clave
array
para encasillar el objeto deStdClass
para convertirlo en un array asociativa en PHP -
Utilice el objeto de
StdClass
dentro de una clase definida por el usuario para convertir el objeto en un array asociativa en PHP -
Utilice las funciones
json_encode()
yjson_decode()
para convertir el objeto en un array asociativa en PHP
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 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