Foros del Web » Programando para Internet » PHP »

problemas con un array bidimensional de php

Estas en el tema de problemas con un array bidimensional de php en el foro de PHP en Foros del Web. Buenas tardes!!!! espero que alguien me pueda ayudar con un problema que tengo con un arreglo bidimencional, ya estuve revisando en muchos lados y segun ...
  #1 (permalink)  
Antiguo 24/05/2010, 17:16
Avatar de roxhp  
Fecha de Ingreso: mayo-2010
Ubicación: Veracruz
Mensajes: 39
Antigüedad: 13 años, 10 meses
Puntos: 3
problemas con un array bidimensional de php

Buenas tardes!!!! espero que alguien me pueda ayudar con un problema que tengo con un arreglo bidimencional, ya estuve revisando en muchos lados y segun yo mi codigo es correcto pero pues obvio lo mas provable es que este equivocada.

El problema es el siguiente:

Tengo 2 arreglos bidimensionales los cuales inicializo asi:

Código PHP:
$cant_suc[$x][1]=$cant;
$total_suc[$x][1]=$tot

el resultado lo imprimo en una tabla con la siguiente sentencia:

Código PHP:
for($i=0;$i<$nt;$i++)
{   ......
    for(
$j=0;$j<$nt;$j++)
    {  echo 
"<td>$precio_prom</td><td>$cant_suc[$i][$j]</td>
        <td>$total_suc[$i][$j]</td>"
;
    }


Pero al ver la informacion en pantalla me muestra los datos asi: Array[0] Array[0] Array[1] Array[1] Array[2] Array[2] Array[3] Array[3] por decir algo... en lugar de mostrarme el valor guardado me muestra el indice del array.

No se si estoy haciendo algo mal, sera mi explorador o esta mal configurado el php. Estoy usando firefox en ambiente linux.


muchas gracias por la atencion
  #2 (permalink)  
Antiguo 24/05/2010, 17:29
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: problemas con un array bidimensional de php

haz un:

Código PHP:
Ver original
  1. var_dump($cant_suc,$total_suc);

para que corrobores como se está guardando tu array
  #3 (permalink)  
Antiguo 24/05/2010, 20:46
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: problemas con un array bidimensional de php

Mira este codigo:

Cuando lo pruebes ejecuta uno, luego el otro, para que no halla conflictos, ya que no les cambie el nombre a los array's






//si $x fuera numerico el array seria indexado numericamente (indice => valor)
$cant_suc[0][1]=20;
//array(0 => array(1 => 20));
$total_suc[0][1]=200;
//array(0 => array(1 => 200));

for($i=0;$i<sizeof($cant_suc);$i++){
foreach($cant_suc[$i] as $k_cant => $v_cant){
echo "<li>".$k_cant ." ". $v_cant;
}

foreach($total_suc[$i] as $k_total => $v_total){
echo "<li>".$k_total ." ". $v_total;
}
}


/*
//si $x fuera string el array seria asociativo (nombre => valor)
$cant_suc["indice"][1]=20;
//array("indice" => array(1 => 20));
$total_suc["indice"][1]=200;
//array("indice" => array(1 => 200));

for($i=0;$i<sizeof($cant_suc);$i++){

foreach($cant_suc['indice'] as $k_cant2 => $v_cant2){
echo "<li>".$k_cant2." ".$v_cant2;
}

foreach($total_suc['indice'] as $k_total2 => $v_total2){
echo "<li>".$k_total2." ".$v_total2;
}
}
*/
  #4 (permalink)  
Antiguo 24/05/2010, 22:40
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 4 meses
Puntos: 7
Respuesta: problemas con un array bidimensional de php

Por lo que puedo leer como colocar todo entre comillas el te va a mostrar los contenido o los valores de las variables que estas usando yo haría una pequeña modificación así:

for($i=0;$i<$nt;$i++)
{ ......
for($j=0;$j<$nt;$j++)
{ echo "<td>$precio_prom</td><td>".$cant_suc[$i][$j]."</td>".
"<td>".$total_suc[$i][$j]."</td>";
}
}

Debería funcionarte... Saludos
  #5 (permalink)  
Antiguo 25/05/2010, 08:11
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: problemas con un array bidimensional de php

//Recorrer un array asociativo no es lo mismo que recorrer un array numerico
//Y en tu array bidimencional puede haber de los dos
//y no se que valor le sa a $x

//asi asociativo el principal e indexado el anidado
$x="indice";
$cant_suc[$x][1]="Valor1";
$total_suc[$x][1]="Valor1";

/*
//asi indexados los dos
$x=0;
$cant_suc[$x][1]="Valor1";
$total_suc[$x][1]="Valor1";
*/

//recorremos cualquiera de los dos array, en este caso "$cant_suc"
for($i=0;$i<sizeof($cant_suc);$i++){
//esto ya dice que lo enontrado dentro del array principal, es un arrray
//echo $cant_suc[$i];
//si cuentas cuantos elementos tiene ese array dice 1
//pero ese elemento tiene como indice 1 o sea que el primer lugar [0] esta vacio
//echo count($cant_suc[$i]);
//por eso a ti te decia array[0] pues hallaba el rimer elemento [0] y alli se detenia el loop
//un lo aclararia
//var_dump($cant_suc[$i]);
//si quieres que el rimer elemento del array anidado no este vacio debes hacer asi
//$cant_suc[0][0]="Valor1";
}
  #6 (permalink)  
Antiguo 25/05/2010, 10:30
Avatar de roxhp  
Fecha de Ingreso: mayo-2010
Ubicación: Veracruz
Mensajes: 39
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: problemas con un array bidimensional de php

Muchas gracias por la ayuda!!!!!!!

Lo que me mencionas me ayudo bastante wiwi74, obteniendo los datos con foreach me es mas facil tratar el arreglo bidimencional, ahora solo me keda mostrarlos en pantalla.

mira para lo que utilizo esto es para hacer un reporte de ventas de distintas sucursales, pero como se deben mostrar en un rango de fechas los productos se repiten asi ke debo de sumar las cantidades y los totales de cada sucursal asi ke cada sucursal debe de tener una cantidad y un total distinto.

$x me indica el ultimo campo insertado en las distintas tablas que realize (en este caso seria el indice del producto), el siguiente indice me indica la sucursal a la cual pertenece y obvio a ese se le asigna el valor que esta variable contenga.

No puse todo el codigo porke la verdad es muy extenso sobre todo por que son una serie de condiciones y el codigo es repetitivo, creo ke se iba a entender menos mi punto

Pero bueno para concluir ya resolvi mi problema y quedo asi:

Código PHP:
for($i;$i<$nr:$i++)     
{      foreach(
$total_suc[$i] as $j=>$tot){
    
$t_suc[$j]=$tot;
      }
      foreach(
$cant_suc[$i] as $j=>$canti){
               
$c_suc[$j]=$canti;
      }
      for(
$j=0;$j<$nt;$j++)
     {    
            
$precio_prom=round(($t_suc[$j]/$c_suc[$j])* 100) / 100
            echo 
"<td ALIGN='center'>$precio_prom</td><td ALIGN='center'>$c_suc[$j]</td><td ALIGN='center'>$t_suc[$j]</td>"
     }

mmmm creo ke el foreach es solo para un solo vector por eso lo hice de esta manera, vacie cada fila de mi array bidimencional a un vector solo para imprimir en pantalla.

Muchisimas gracias nuevamente por el apoyo de todos me sirvio bastante

Etiquetas: bidimensionales
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 01:14.