Acessando variáveis de objeto de matriz ao implementar o RecursiveArrayIterator no RecursiveIteratorITerator
-
26-09-2019 - |
Pergunta
Eu tenho um grande ArrayObject que estou fazendo o uso do seguinte:-
$rit = new RecursiveIteratorIterator(new RecursiveArrayIterator($hierarchy));
foreach($rit as $key=> $val) {
}
Como posso acessar a chave específica dentro da matriz? Posso acessá -los ecoando $ key e o $ val, mas tenho chaves específicas que desejo acessar. Se eu tentar chamar $ key [''], recebo a primeira carta no nome da chave.
Editar 1
Alguns dados de amostra (também podem haver muitos sub-filhos diferentes):
ArrayObject::__set_state(array(
0 =>
ArrayObject::__set_state(array(
0 =>
array (
'id' => '8755',
'company_id' => '1437',
'name' => 'Name 1'
),
1 =>
ArrayObject::__set_state(array(
0 =>
ArrayObject::__set_state(array(
0 =>
array (
'id' => '8763',
'company_id' => '1437',
'name' => 'Name 2'
),
1 =>
ArrayObject::__set_state(array(
0 =>
ArrayObject::__set_state(array(
0 =>
array (
'id' => '9067',
'company_id' => '1437',
'name' => 'Name 3'
),
)),
1 =>
ArrayObject::__set_state(array(
0 =>
array (
'id' => '8765',
'company_id' => '1437',
'name' => 'Name 4'
),
)),
2 =>
ArrayObject::__set_state(array(
0 =>
array (
'id' => '9049',
'company_id' => '1437',
'name' => 'Name 5'
),
)),
3 =>
ArrayObject::__set_state(array(
0 =>
array (
'id' => '8769',
'company_id' => '1437',
'name' => 'Name 6'
),
)),
Solução
Por padrão, o recursiveIteratorterator listará apenas as folhas. Tentar
$rit = new RecursiveIteratorIterator(
new RecursiveArrayIterator($hierarchy),
RecursiveIteratorIterator::SELF_FIRST);
Para obter os elementos contendo também.
Outras dicas
Assumindo $hierarchy
é sua grande variedade, você pode usar $hierarchy["foo"]
para acessar o valor associado ao foo
chave. Ou assim:
$my_key = "foo"
echo $hierarchy[$my_key]
// Same as
echo $hierarchy["foo"]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow