Accedendo variabili oggetto matrice nell'attuazione RecursiveArrayIterator in RecursiveIteratorIterator
-
26-09-2019 - |
Domanda
Ho una grande arrayObject quale sto loop sopra utilizzando la seguente: -
$rit = new RecursiveIteratorIterator(new RecursiveArrayIterator($hierarchy));
foreach($rit as $key=> $val) {
}
Come posso accedere alla chiave specifica una all'interno della matrice? Io possa accedere da eco $ chiave e il $ val ma non ho le chiavi specifiche che desidera accedere. Se tento di chiamare $ key [ ''] ricevo la prima lettera del nome della chiave.
Modifica 1
Alcuni dati di esempio (ci possono essere molte sotto-diversi bambini troppo):
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'
),
)),
Soluzione
Per impostazione predefinita, il RecursiveIteratorIterator elencherà solo le foglie. Prova
$rit = new RecursiveIteratorIterator(
new RecursiveArrayIterator($hierarchy),
RecursiveIteratorIterator::SELF_FIRST);
per ottenere gli elementi che contengono pure.
Altri suggerimenti
Supponendo $hierarchy
è il tuo grande array, è possibile utilizzare $hierarchy["foo"]
per accedere al valore associato alla chiave foo
. O come questa:
$my_key = "foo"
echo $hierarchy[$my_key]
// Same as
echo $hierarchy["foo"]