una recorrer multidimensional matriz manejo imprimir hacer elementos ejemplos como asociativo array agregar 3x3 php arrays associative-array

recorrer - Iteración sobre una matriz asociativa compleja en PHP



manejo de array en php (7)

¿Puedes recorrer todos los elementos de "parte [n]" y usar isset para ver si realmente existen o no?

¿Existe una manera fácil de iterar sobre una matriz asociativa de esta estructura en PHP?

La matriz $searches tiene un índice numerado, con entre 4 y 5 partes asociativas. Así que no solo necesito repetir más de $searches[0] a $searches[n] , sino también $searches[0]["part0"] a $searches[n]["partn"] . La parte difícil es que los diferentes índices tienen diferentes números de partes (algunos pueden faltar uno o dos).

¿Piensas en hacer esto de una manera que sea agradable, ordenada y comprensible?


Debería poder usar una declaración anidada de foreach

del manual php

/* foreach example 4: multi-dimensional arrays */ $a = array(); $a[0][0] = "a"; $a[0][1] = "b"; $a[1][0] = "y"; $a[1][1] = "z"; foreach ($a as $v1) { foreach ($v1 as $v2) { echo "$v2/n"; } }


Realmente no estoy seguro de lo que quieres decir aquí. ¿Seguramente un par de bucles foreach hacen lo que necesitas?

foreach($array as $id => $assoc) { foreach($assoc as $part => $data) { // code } }

¿O necesitas algo recursivo? Sería capaz de ayudar más con los datos de ejemplo y un contexto en cómo desea que se devuelvan los datos.


Parece un buen lugar para una función recursiva, esp. si tienes más de dos niveles de profundidad.

function doSomething(&$complex_array) { foreach ($complex_array as $n => $v) { if (is_array($v)) doSomething($v); else do whatever you want to do with a single node } }


Considere esta matriz multidimensional, espero que esta función ayude.

$n = array(''customer'' => array(''address'' => ''Kenmore street'', ''phone'' => ''121223''), ''consumer'' => ''wellington consumer'', ''employee'' => array(''name'' => array(''fname'' => ''finau'', ''lname'' => ''kaufusi''), ''age'' => 32, ''nationality'' => ''Tonga'') ); iterator($n); function iterator($arr){ foreach($arr as $key => $val){ if(is_array($val))iterator($val); echo ''<p>key: ''.$key.'' | value: ''.$val.''</p>''; //filter the $key and $val here and do what you want } }


Nido dos bucles foreach :

foreach ($array as $i => $values) { print "$i {/n"; foreach ($values as $key => $value) { print " $key => $value/n"; } print "}/n"; }


Sé que es cuestión de nigromancia, pero iterar sobre matrices multidimensionales es fácil con Iteradores Spl

$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array)); foreach($iterator as $key=>$value) { echo $key.'' -- ''.$value.''<br />''; }

Ver