Foros del Web » Programando para Internet » PHP »

Foreach con dos arrays

Estas en el tema de Foreach con dos arrays en el foro de PHP en Foros del Web. Saludos, no se si suena raro o que, pero se me ocurrió (soy muy novato) pero no se como hacerlo. Por ejemplo, un foreach normal ...
  #1 (permalink)  
Antiguo 10/04/2008, 14:21
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 17 años, 5 meses
Puntos: 59
Foreach con dos arrays

Saludos, no se si suena raro o que, pero se me ocurrió (soy muy novato) pero no se como hacerlo.

Por ejemplo, un foreach normal teniendo un array $var

Código PHP:
foreach ($var as $row) {
          print 
$row;

¿Cómo hacerlo con dos arays que quiero mostrar en una misma impresión?

Ejemplo (Se que no funciona, sino que es para explicarme) teniendo dos arrays $var y $var2

Código PHP:
foreach ($var as $row && $var2 as $row2) {
          print 
$row"<br />";
          print 
$row2"<br />";

Como dije, se que no funciona, sino que qería ser lo mas gráfico posible, eso es lo que quiero saber como se puede hacer....

Meter dos arrays en el foreach para luego imprimirlos.

En serio, soy muy novato

Mil gracias.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #2 (permalink)  
Antiguo 10/04/2008, 14:47
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 11 meses
Puntos: 11
Re: Foreach con dos arrays

No, así no se puede.
Además ten en cuenta que no siempre los arrays tienen la misma extensión y forma matricial.

Por otro lado, sólo en el caso en que tengas dos array en donde coincidan los indices, por ejemplo:

$array1[1] = "algo";
$array1[2] = "algo";
$array1[3] = "algo";
$array1[4] = "algo";


$array2[1] = "mas";
$array2[2] = "mas";
$array2[3] = "mas";
$array2[4] = "mas";

Ahi si puedes tomar los dos pero con un foreach y un array de referencia, continuando el ejemplo:

Código PHP:
foreach ($array1 as $indice => $valor)
{
// Valor del array 1
echo $valor;
 
// Valor del array2 con el mismo indice que el 1
echo $array2[$indice];
 

Me explico??
Saludos Amigo
  #3 (permalink)  
Antiguo 10/04/2008, 14:55
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 17 años, 5 meses
Puntos: 59
Re: Foreach con dos arrays

Hola Usermax, gracias por responder, y tan pronto.

Se que así no se podía hacer, solo quería ser gráfico

No entiendo muy bien tu ejemplo, en serio, soy muy novato.

Lo que si entiendo es que los array deben ser iguales en extensión y forma matricial.

Ahora lo que no entiendo.

1. Suponiendo que $array1 es el primer array y $array2 es el segundo.

En el foreach donde pones el $array2 ?

Donde encuentro mas informacion acerca de arrays de referencia?

que es lo que hace $indice => $valor ?

Gracias, no se si sea muy util saber esto, pero es una duda que me ha estado rompiendo el coco.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
  #4 (permalink)  
Antiguo 10/04/2008, 15:10
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 11 meses
Puntos: 11
Re: Foreach con dos arrays

Claro, mira...

Yo mencioné "array de referencia" pero ese termino lo inventñe para ser didactico contigo. Yo tomo el array 1 como referencia para llamar al 2.

Un poco de teoría...

Que son los índices y valores de cada elemento de array?
Graficamente lo veamos:

$array[INDICE] = VALOR

El índice puede ser un número, una cadena de texto, etx.

Volvamos al primer ejemplo:
$array1[1] = "algoA";
$array1[2] = "algoB";
$array1[3] = "algoC";
$array1[4] = "algoD";

$array2[1] = "masA";
$array2[2] = "masB";
$array2[3] = "masC";
$array2[4] = "masD";

Veamos un poco el foreach.

Hay dos formas de usarlo:

1) Primer caso
Código PHP:
foreach ($array1 as $valor) {
 
 
 

En el primer caso el foreach va a recorrer el $array1, y $valor representa justamente el valor de cada uno. Veamos como queda para que sea más claro:

Código PHP:
foreach ($array1 as $valor) {
 
$echo $valor;
 

Este foreach imprime en pantalla esto:

algoA
algoB
algoC
algoD

2) Segundo Caso

Código PHP:
foreach ($array1 as $indice => $valor) {
 
$echo $valor;
 


El resultado de este segundo caso va a ser el mismo que el primero

algoA
algoB
algoC
algoD

pero usándolo asi le estamos diciendo que ademas de darme el valor, queremos saber el íncide de ese elemento del array. Fíjate ahora:

Código PHP:
foreach ($array1 as $indice => $valor) {
 
$echo "$indice: $valor";
 

Ahora te va a mostrar además del valor tambien el índice.

1: algoA
2: algoB
3: algoC
4: algoD

Es por eso que si tenemos el índice del primer array, y sabemos que el segundo array tiene el mismo índice, entonces lo podemos llamar así:

Código PHP:
foreach ($array1 as $indice => $valor)
{
// Valor del array 1
echo $valor;
 
// Valor del array2 con el mismo indice
echo $array2[$indice];
 


Se entiende un poco más??
  #5 (permalink)  
Antiguo 10/04/2008, 15:18
Avatar de lucasan
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: Cali - Colombia
Mensajes: 1.144
Antigüedad: 17 años, 5 meses
Puntos: 59
Re: Foreach con dos arrays

Perfectisimo, mil gracias Usermax.
__________________
Plan Original Desarrollo Web
~$>sudo apt-get install -f
"Asi debería arreglarse todo en la vida"
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 22:00.