Acceso a las variables objeto de matriz en la aplicación de RecursiveArrayIterator en RecursiveIteratorIterator
-
26-09-2019 - |
Pregunta
Tengo una gran ArrayObject el que estoy usando un bucle sobre lo siguiente: -
$rit = new RecursiveIteratorIterator(new RecursiveArrayIterator($hierarchy));
foreach($rit as $key=> $val) {
}
¿Cómo puedo acceder a la clave específica una dentro de la matriz? Puedo acceder a ellos haciendo eco de $ clave y el $ val pero tengo teclas específicas que desea acceder. Si intento llamar $ tecla [ ''] Me da la primera letra en el nombre de la clave.
Editar 1
Algunos datos de la muestra (puede haber muchos diferentes sub-niños también):
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'
),
)),
Solución
Por defecto, el RecursiveIteratorIterator será solamente una lista de las hojas. Trate
$rit = new RecursiveIteratorIterator(
new RecursiveArrayIterator($hierarchy),
RecursiveIteratorIterator::SELF_FIRST);
para obtener los elementos que contienen también.
Otros consejos
Suponiendo $hierarchy
es su gran variedad, puede utilizar $hierarchy["foo"]
para acceder al valor asociado a la clave foo
. O como esto:
$my_key = "foo"
echo $hierarchy[$my_key]
// Same as
echo $hierarchy["foo"]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow