Foros del Web » Programando para Internet » PHP »

Problema con Arrays

Estas en el tema de Problema con Arrays en el foro de PHP en Foros del Web. Bueno primero que nada soy nuevo aqui y espero puedan ayudarme, ya busque en otros temas y no he encontrado solucion asi que aqui lo ...
  #1 (permalink)  
Antiguo 26/07/2006, 15:56
 
Fecha de Ingreso: julio-2006
Mensajes: 5
Antigüedad: 18 años, 4 meses
Puntos: 0
Problema con Arrays

Bueno primero que nada soy nuevo aqui y espero puedan ayudarme, ya busque en otros temas y no he encontrado solucion asi que aqui lo pongo: Tengo problemas para manejar array apenas empiezo a programar, y bueno yo tengo algo asi :
Código PHP:
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach(
$a as $v1) {
    foreach (
$v1 as $v2) {
        print 
"$v2\n";
    }
}
?> 
Y lo que quiero hacer es que en esta parte:
Código PHP:
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z"
Los datos no los declare yo si no que los valores se guarden de acuerdo a datos que introduzca el usuario espero haberme explicado bien. He intentado con bucle for pero no me funciona con arrays bidimensionales ojala pudieran ayudarme.
  #2 (permalink)  
Antiguo 26/07/2006, 16:07
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 18 años, 4 meses
Puntos: 5
sabes, no entendi lo que queria.
primero escribe que es lo que quieres, despues explica como lo estas haciendo
por que uno te puede dar una solucion distinta a lo que estas realizando
  #3 (permalink)  
Antiguo 26/07/2006, 16:08
Avatar de kennyhp  
Fecha de Ingreso: julio-2006
Mensajes: 370
Antigüedad: 18 años, 4 meses
Puntos: 5
El bucle for ha de ser doble, un for anidado en otro ya que al ser un vector de dos dimensiones lo has de recorrer para cada una de ellas:

for($i=0;$i<=1;$i++)
{
for($j=0;$j<=1;$j++)
{
$a[$i][$j]="lo k quieras" ;
}
}

En el for primero i vale cero y j cero entras en j y se recorre tantas veces como hga falta (i=0,j=0-i=0,j=1....) y cuando termina j vuelve a i, entonces i=1 y asi hasta que acaba.
Espero k sea esto lo k necesitas!
  #4 (permalink)  
Antiguo 26/07/2006, 16:16
 
Fecha de Ingreso: julio-2006
Mensajes: 5
Antigüedad: 18 años, 4 meses
Puntos: 0
Cita:
Iniciado por kennyhp
El bucle for ha de ser doble, un for anidado en otro ya que al ser un vector de dos dimensiones lo has de recorrer para cada una de ellas:

for($i=0;$i<=1;$i++)
{
for($j=0;$j<=1;$j++)
{
$a[$i][$j]="lo k quieras" ;
}
}

En el for primero i vale cero y j cero entras en j y se recorre tantas veces como hga falta (i=0,j=0-i=0,j=1....) y cuando termina j vuelve a i, entonces i=1 y asi hasta que acaba.
Espero k sea esto lo k necesitas!
Si eso es como lo he intentado, y quiero imprimir el contenido en pantalla para comprobar que se guardan los valores pero no imprime nada, a que se deberá...?
  #5 (permalink)  
Antiguo 26/07/2006, 16:18
Avatar de kennyhp  
Fecha de Ingreso: julio-2006
Mensajes: 370
Antigüedad: 18 años, 4 meses
Puntos: 5
pon el código a ver...
  #6 (permalink)  
Antiguo 26/07/2006, 16:26
 
Fecha de Ingreso: julio-2006
Mensajes: 5
Antigüedad: 18 años, 4 meses
Puntos: 0
Aqui esta:

Código PHP:
for($i=0;i<2;$i++)
{
for(
$j=0;$j<2;$j++)
    {
    
$a[$i][$j]="a";
    echo
"$a[$i][$j]";
     }

  #7 (permalink)  
Antiguo 26/07/2006, 16:50
Avatar de kennyhp  
Fecha de Ingreso: julio-2006
Mensajes: 370
Antigüedad: 18 años, 4 meses
Puntos: 5
Yo lo he probado asi:

Código PHP:
<?php 
for($i=0;i<2;$i++) 

for(
$j=0;$j<2;$j++) 
    { 
    
$a[$i][$j]="a"
    
$mostrar=$a[$i][$j];
    echo 
"$mostrar "
     } 
    echo 
"<br>"
}

?>
y me lo muestra, pero por algun motivo me hace un bucle infinito... no entiendo pq no sale del bucle, a ver si tu ves el por que, pero por lo menos me muestra el valor por pantalla ;)
  #8 (permalink)  
Antiguo 26/07/2006, 16:59
 
Fecha de Ingreso: julio-2006
Mensajes: 5
Antigüedad: 18 años, 4 meses
Puntos: 0
Si de hecho me pasó lo mismo con el bucle infinito, ahora lo movi y luego lo deje igual asi:
Código PHP:
for($i=0$i<=2$i++) {
for(
$j=0$j<=2$j++)
{
    
$a[$i][$j]="a";
    echo
"$a[$i][$j]";
}

y ahora lo que imprime es:
Cita:
Array[0]Array[1]Array[2]Array[0]Array[1]Array[2]Array[0]Array[1]Array[2]
La verdad es que no entiendo mucho porque se comporta asi, pero seguire moviendole a ver si encuentro la solucion.
  #9 (permalink)  
Antiguo 26/07/2006, 19:56
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 10 meses
Puntos: 5
Buenas,

Código PHP:
for($i=0;i<2;$i++) 
el problema acá es que te faltó el signo $ en la variable $i. Entonces la condición nunca pasa a false; una variable indefinida equivale a 0, o a null, o a un string vacío ("") y en todos los valores anteriores se evalúan como "menores" a un entero (2, en este caso). Entonces siempre devuelve true ó 1 y nunca sale del loop.

Acá, tendrías que sacar las comillas:
Código PHP:
for($i=0$i<=2$i++) {
for(
$j=0$j<=2$j++)
{
    
$a[$i][$j]="a";
    echo
"$a[$i][$j]";
}

Esta sintaxis $a[$i] de acceso a arrays no funciona cuando estás dentro de un string entre comillas dobles. Una alternativa sería escribirlo así:

Código PHP:
echo"{$a[$i][$j]}"
pero las comillas no te hacen falta así que podrías sacarlas y sería más claro.

Código PHP:
for($i=0$i<=2$i++) {
    for(
$j=0$j<=2$j++) {
        
$a[$i][$j]="a_" $i "__" $j;
        echo 
$a[$i][$j];
    }
}  
echo 
"<pre>";
print_r($a);
echo 
"</pre>"
Tal vez te convenga más ver el valor del array después de haberlo llenado. Para eso podés usar print_r($nombre_del_array); (si usás además <pre></pre> te queda más "limpio" a la vista.


Suerte
Califa
  #10 (permalink)  
Antiguo 26/07/2006, 20:30
 
Fecha de Ingreso: julio-2006
Mensajes: 5
Antigüedad: 18 años, 4 meses
Puntos: 0
Gracias califa010 por tu respuesta, me ha servido de mucho ya he podido hacer lo que queria, y gracias a todos los que me respondieron.
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 12:07.