Foros del Web » Programando para Internet » PHP »

Recorrer una matriz por columna...

Estas en el tema de Recorrer una matriz por columna... en el foro de PHP en Foros del Web. Estoy varado con esto. Recorrer una matriz por filas no tengo problema. Pero como es por columnas ? ej: $animales[0][0] = 'gato'; $animales[0][1] = 'caiman'; ...
  #1 (permalink)  
Antiguo 25/06/2013, 09:05
 
Fecha de Ingreso: febrero-2010
Mensajes: 132
Antigüedad: 14 años, 2 meses
Puntos: 0
Exclamación Recorrer una matriz por columna...

Estoy varado con esto.

Recorrer una matriz por filas no tengo problema.
Pero como es por columnas ?

ej:

$animales[0][0] = 'gato';
$animales[0][1] = 'caiman';
$animales[0][2] = 'paloma';

$animales[1][0] = 'felino';
$animales[1][1] = 'reptil';
$animales[1][2] = 'ave';

quiero que salga en pantalla entonces:

gato - felino
caiman - reptil
paloma - ave

??? gracias.
  #2 (permalink)  
Antiguo 25/06/2013, 09:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Recorrer una matriz por columna...

Si te fijas con atención a eso se le conoce como array multi-dimensional, y actualmente tienes únicamente dos dimensiones.

Por cada dimensión debes hacer una iteración, una dentro de la otra y así sucesivamente.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 25/06/2013, 09:15
 
Fecha de Ingreso: febrero-2010
Mensajes: 132
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Recorrer una matriz por columna...

Lo se, hago:

for($f = 0; $f < sizeof($animales); $f++)
{
for($c = 0; $c < sizeof($animales[$f]); $c++)
{
echo $animales[$f][$c]." ";
}
}

pero barre por filas, no columnas, y como soy algo novato en esto no se como decirle que barra por columna,,
  #4 (permalink)  
Antiguo 25/06/2013, 09:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Recorrer una matriz por columna...

No hay forma de decir que barra "por columna" ese concepto no existe, básicamente es un array dentro de otro, reflexiona bien esa parte.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 25/06/2013, 09:34
 
Fecha de Ingreso: febrero-2010
Mensajes: 132
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Recorrer una matriz por columna...

Claro es lo que me pareció a mi tambien.
En el caso de una matriz cuadrada me arreglo bien, pero este no era mi caso.

gracias...
  #6 (permalink)  
Antiguo 25/06/2013, 09:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Recorrer una matriz por columna...

Debo decir que te hace falta más ingenio, iterar por si mismo no permitiría agrupar la información de la manera que buscas, hace falta crear un arreglo auxiliar y agrupar en relación al sub índice.

Código PHP:
Ver original
  1. $animales[0][0] = 'gato';
  2. $animales[0][1] = 'caiman';
  3. $animales[0][2] = 'paloma';
  4.  
  5. $animales[1][0] = 'felino';
  6. $animales[1][1] = 'reptil';
  7. $animales[1][2] = 'ave';
  8.  
  9.  
  10.  
  11. $salida = array();
  12.  
  13. foreach ($animales as $index => $sub) {
  14.     foreach ($sub as $sub_index => $sub_value) {
  15.         isset($salida[$sub_index]) || $salida[$sub_index] = array();
  16.         $salida[$sub_index] []= $sub_value;
  17.     }
  18. }
  19.  
  20.  
  21. print_r($salida);
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: matriz
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 02:57.