Converter objeto PHP em matriz associativa
-
Use a palavra-chave
array
para fazer o Typecast do objetoStdClass
para converter em um array associativo em PHP -
Use o objeto
StdClass
dentro de uma classe definida pelo usuário para converter o objeto em um array associativa em PHP -
Use as funções
json_encode()
ejson_decode()
para converter o objeto em um array associativo em PHP
Apresentaremos um método para converter o objeto PHP em um array associativo, lançando os objetos de StdClass
usando a palavra-chave array
. Usaremos a função var_dump()
para exibir o array associativo.
A segunda abordagem demonstra outro método para converter o objeto PHP em um array associativo criando uma StdClass
no construtor de uma classe definida pelo usuário. Vamos converter o objeto em um array associativo como no primeiro método usando a palavra-chave array
. Este método segue a abordagem orientada a objetos.
Também apresentaremos outro método para converter o objeto em array associativo em PHP usando as funções json_encode()
e json_decode()
. Usaremos a StdClass
para criar o objeto e as propriedades dinâmicas.
Use a palavra-chave array
para fazer o Typecast do objeto StdClass
para converter em um array associativo em PHP
Podemos criar a classe vazia StdClass
para criar um objeto em PHP e usar o objeto para criar propriedades. O objeto da classe pode acessar diretamente as propriedades. Ele também pode criar propriedades dinâmicas para a classe. Podemos usar o objeto array
para fazer o typecast do objeto em um array. A função var_dump()
despeja as informações sobre o tipo e os valores do array.
Por exemplo, crie um objeto $object
de StdClass
usando o operador new
. Crie duas propriedades usando o $object
denominado car1
e car2
. Atribua às propriedades os valores porsche
e bugatti
. Use a palavra-chave array
para typecast a variável $object
. Envolva a palavra-chave array
com parênteses antes da variável $object
e descarregue o valor usando a função var_dump()
. O exemplo a seguir converte os objetos em um array associativa, conforme mostrado na seção de saída. Ele mostra os pares de chave e valor para cada elemento do array.
Código de exemplo:
#php 7.x
<?php
$object = new StdClass;
$object->car1 = "porsche";
$object->car2 = "bugatti";
var_dump( (array) $object );
?>
Resultado:
array(2) { ["car1"]=> string(7) "porsche" ["car2"]=> string(7) "bugatti" }
Use o objeto StdClass
dentro de uma classe definida pelo usuário para converter o objeto em um array associativa em PHP
Podemos criar uma instância de StdClass
no construtor da classe e usar a palavra-chave array
para converter o objeto da classe em um array associativo. Podemos criar uma classe e definir algumas propriedades dela. O construtor da classe inicializa as propriedades da classe para valores específicos. Podemos criar um objeto da StdClass
e atribuí-lo a uma das propriedades da classe. O operador new
, junto com a classe, invoca o construtor. Podemos usar a palavra-chave array
logo antes da invocação para converter o objeto da classe em um array associativo.
Por exemplo, crie uma classe Motorcycle
. Crie três propriedades de classe com o modificador de acesso private
como $name
, $color
e $type
. Crie um construtor da classe e dentro do construtor inicialize os valores das propriedades. Escreva Husky
para name
, white
para color
e crie um objeto da StdClass
para type
. Use a palavra-chave $this
para inicializar as propriedades. Fora da classe, invoque a classe Motorcycle
e use a palavra-chave array
para fazer o typecast antes de invocar. Use a função var_dump()
para despejar as informações sobre o array typecasted.
Código de exemplo:
#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 );
Resultado:
array(3) { ["Motorcyclename"]=> string(5) "Husky" ["Motorcyclecolor"]=> string(5) "white" ["Motorcycletype"]=> object(stdClass)#2 (0) { } }
Use as funções json_encode()
e json_decode()
para converter o objeto em um array associativo em PHP
A função json_encode()
codifica um valor para o objeto JSON e a função json_decode()
converte o objeto JSON em objeto PHP. O valor booleano, o segundo parâmetro da função json_decode()
, indica o que o objeto JSON deve ser convertido. O valor true
irá converter o objeto JSON em um array associativo, enquanto o valor false
irá convertê-lo em um objeto PHP.
Por exemplo, crie um objeto da StdClass
e atribua-o à variável $object
. Nomeie dois valores da propriedade do objeto como Mustang
e Manang
e armazene-os nas variáveis place1
e place2
. Use a função json_encode()
na variável $object
e armazene o valor na variável $json
. Então, use a função json_decode()
na variável $json
e use o valor booleano true
como o segundo parâmetro. Armazene o valor na variável $array
. Descarregue a variável usando a função var_dump()
.
No exemplo abaixo, a variável $object
contém o objeto StdClass
. A função json_ecode()
converte o objeto na string JSON. A função json_decode()
converte a string JSON no array associativo.
Código de exemplo:
#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);
?>
Resultado:
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