Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
É o seguinte digamos que eu tenha uma array associativa tipo assim:
$assoArr = ['Indice1' => 'Valor 1', 'Indice2' => 'Valor 2'];
Logo então posso acessar cada índice da array ($assoArr['Indice1'])
Então criei uma função para transformar em objetos
function objArr($array) {
$object = new stdClass();
if (is_array($array)) {
foreach ($array as $name => $value) {
$object->$name = $value;
}
}
return $object;
}
Assim converto a array
**$converte = objArr($assoArr);**
Acessando cada índice **$converte->Indice1;**
Blz, Tudo funcionando.... Mas e no caso de uma array multi-dimensional?
Tentei já de tudo, mas não consigo passar arrays internas a índices para dentro de funções, exceto seu eu usar object revesado na array eu repassando a função:
Na pática seria para funcionar mais ou menos arrim
$assoArr = [
'Indice1' => 'Valor 1',
'Indice2' => [
'Valor1_Ind2' => 'Dados1',
'Valor2_Ind2' => 'Dados2'
]
];
$converte = objArr($assoArr);
Para acessar dessa forma $converte->Indice2->Valor1_Ind2;>
10 horas atrás, Matheus Tavares disse:
Permita-me perguntar: qual o sentido disso? Pq não trabalhar com arrays, já que os dados já se encontram dessa forma?
Por questões de estudo e prática.
>
10 horas atrás, Matheus Tavares disse:
1 - Type cast para objeto, mas isso não é recursivo (você precisará aplicar também nos arrays filhos quando for multidimensional).
$objeto = (object)$array;
2 - Convertendo para JSON e de JSON para objeto novamente, assim:
$objeto = json_decode( json_encode( $array ) );
Conheço essas formas
Mas a questão é criar uma função que automatizará esse processo de conversão toda vez que uma array é criada.
Bem.... a solução mais prática seria assim:
function objArr($array) {
if (is_array($array)) {
return (object) array_map(__FUNCTION__, $array);
} else {
return $array;
}
}
Permita-me perguntar: qual o sentido disso? Pq não trabalhar com arrays, já que os dados já se encontram dessa forma?
Existem várias formas, mas as primeiras que eu consigo imaginar são:
1 - Type cast para objeto, mas isso não é recursivo (você precisará aplicar também nos arrays filhos quando for multidimensional).