Foros del Web » Programando para Internet » PHP »

recorrer array de array

Estas en el tema de recorrer array de array en el foro de PHP en Foros del Web. Hola amig@s. Tengo un buen problema entre manos y no se cómo solucionarlo. A mi me enseñaron en un principio a recorrer los arrays multidimensionales ...
  #1 (permalink)  
Antiguo 18/05/2010, 16:14
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
recorrer array de array

Hola amig@s.
Tengo un buen problema entre manos y no se cómo solucionarlo.

A mi me enseñaron en un principio a recorrer los arrays multidimensionales con un for anidado a otro for. Ahora resulta que he leido por ahí los foreach y no me queda claro del todo.

Os comento lo que tengo.
Primero hago una consulta de 2 campos a la base de datos agrupados por otro campo, lo cual me saldría algo así:
Código:
$array =
grupo1 -> campo1 | campo2
grupo2 -> campo1 | campo2
grupo3 -> campo1 | campo2
Según lo que io pensaba, hasta ahora, si quiero sacar el campo2 del grupo1 tendría que hacer $array[grupo1][campo2]. Pero no, me muestra Array[campo2] en lugar del resultado.

Fuera de lo que io piense o de por hecho Lo que hago es lo siguiente:
1.Extraigo los datos de la consulta en $resultado.
2. Con una función que he sacado de este mismo foro la convierto en un array y la devuelvo a otra variable.
3. Con un for intento recorrerla, pero no hay modo de que me devuelva el resultado que io quiero.

Haciendo un print_r de una de las variables me muestra lo siguiente:
Array ( [0] => Array ( [campo1] => 1 [campo2] => 1 ) [1] => Array ( [campo1] => 2 [campo2] => 1 ) [2] => Array ( [campo1] => 4 [campo2] => 1 ) )

Mi pregunta es, cómo podría acceder a esos campos??

Mil gracias!!
  #2 (permalink)  
Antiguo 18/05/2010, 16:33
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: recorrer array de array

es lo mismo..
Código PHP:
Ver original
  1. foreach($array as $key => $value){
  2.    foreach($value as $key2 => $value2){
  3.       echo $value2."<br />\n";
  4.    }
  5. }
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 18/05/2010, 18:20
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: recorrer array de array

Asignale a $categorias el nombre de tu array a ver que pasa
Tu a array es multimimensional: es un array asociativo dentro de un numerico, indexado.
No se si te va a servir, pero para un multidimensinal asociativo si.



for($capa=0; $capa<sizeof($categorias); $capa++)
{

echo "<b>Capa:</b> ".($capa+1)."<br />";

for($fila=0; $fila<sizeof($categorias); $fila++)
{

for($columna=0; $columna<sizeof($categorias); $columna++)

{

echo $categorias[$capa][$fila][$columna]."<br />";
}

echo "<p />";

}

}
  #4 (permalink)  
Antiguo 19/05/2010, 00:30
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: recorrer array de array

Muchas gracias a l@s dos por las respuestas, aunque sólo he probado la de Hidek1 pues la veía más clara.
La cosa es que me sale bastante bien, pero he ido probando y sólo puedo referirme al campo que muestra $key2 de la forma
if(key2 == 'nombre_campo')...
Cómo podría referirme al campo en sí sin usar un if? Quiero decir que, comprobando un valor de 1 iteracion de $key2=>$value2 me gustaría sacar el de la siguiente iteración.
En resumen, queria sacar
if($key2== 'campo1')
if($value2['campo1'] == $numero)
echo $value2['campo2'];

Gracias de nuevo
  #5 (permalink)  
Antiguo 20/05/2010, 01:48
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: recorrer array de array

Cita:
Iniciado por Hidek1 Ver Mensaje
es lo mismo..
Código PHP:
Ver original
  1. foreach($array as $key => $value){
  2.    foreach($value as $key2 => $value2){
  3.       echo $value2."<br />\n";
  4.    }
  5. }
Me ha costado pero al final lo he entendido.
La verdad es, Hidek1, que me confundiste un poco con tu código(claro pero confuso).

Para referirme al valor que contiene el campo al que accede $value2 tengo que llamar a la variable $value, no a $value2, accediendo al campo que quiero.
$value['campo'];

Bueno, por fin lo he conseguido y me quito un peso gordo de encima.

Gracias!!

Etiquetas: recorrer
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:26.