Foros del Web » Programando para Internet » PHP »

Problema con arreglo bidimensional

Estas en el tema de Problema con arreglo bidimensional en el foro de PHP en Foros del Web. Que tal tengo un problema con un arreglo bidimencional, estoy usando valores del mismo arreglo para en otra posicion hacer operaciones matematicas con ellos les ...
  #1 (permalink)  
Antiguo 27/12/2013, 09:35
 
Fecha de Ingreso: diciembre-2013
Mensajes: 5
Antigüedad: 10 años, 10 meses
Puntos: 0
Información Problema con arreglo bidimensional

Que tal tengo un problema con un arreglo bidimencional, estoy usando valores del mismo arreglo para en otra posicion hacer operaciones matematicas con ellos

les pongo el ejemplo:
los valores de la fila Saldo son correctos, la operacion ahi es la resta de (ingreso - egreso) de cada mes, en saldo acumulado el valor de enero es correcto, pero el problema empieza apartir de febrero, la operacion seria saldo acumularo del mes anterio SAenero (4900) + Ingresos de febrero 100 - egresos de febrero 200
4900+100-200= 4800 deberia de ser el valor del saldo scumulado de febrero. y asi hasta abril.

Espero me de antendes y alguien pueda ayudarme por que no encuentro como hacerlo funcionar.

Gracias.

Código PHP:
$saldoInicial 5000;
$data = array(
         array(
"Concepto","Enero","Febrero","Marzo","Abril"),
        array(
"Ingresos",    100,    100,    100,    100),
        array(
"Egresos",    200,    200,    200,    200),
        array(
"Deudores",    300,    300,    300,    300),
        );
        
$aa = array("Saldo",($data[1][1]-$data[2][1]),($data[1][2]-$data[2][2]),($data[1][3]-$data[2][3]),$data[1][4]-$data[2][4]);
        
$bb = array("Saldo Acumulado",($saldoInicial)+($data[1][1])-$data[2][1],
                    (
$data[1][2] - $data[2][2])+$data[5][1] ,
                    
"3",
                    
"4");
        
array_push($data,$aa,$bb);
        
$tblCuatrimestre1 '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
foreach(
$data as $dat){
   
$tblCuatrimestre1 .= ' <tr>
    <td width="20%">'
.$dat[0].'</td>
    <td width="20%">'
.$dat[1].'</td>
    <td width="20%">'
.$dat[2].'</td>
    <td width="20%">'
.$dat[3].'</td>
    <td width="20%">'
.$dat[4].'</td>
    <td width="20%">'
.$dat[5].'</td>
  </tr>'
;
}
$tblCuatrimestre1 .= '</table>';
echo 
$tblCuatrimestre1
  #2 (permalink)  
Antiguo 27/12/2013, 11:32
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Problema con arreglo bidimensional

De donde sacas esos datos?

Te aseguro que tabajarias mucho mejor con array asociativos tipo este

Código PHP:
Ver original
  1. $data = array(
  2.          array("Concepto"=>"Ingresos","Mes"=>"Enero","Importe"=>100)
  3. ....
  4.         );

Por otro lado

<td width="20%">'.$dat[0].'</td>

$dat[0]=array("Concepto","Enero","Febrero","Marzo","Abril ")

todo en una celda?

Pero bueno si quieres se puede .... poco elegante pero funciona, el truco esta en acumular como su nombre dice....

Código PHP:
Ver original
  1. $bb = array("Saldo Acumulado",
  2.   ($saldoInicial)+($data[1][1])-$data[2][1],
  3.   ($saldoInicial)+($data[1][1])-$data[2][1]+($data[1][2])-$data[2][2],
  4.   ($saldoInicial)+($data[1][1])-$data[2][1]+($data[1][2])-$data[2][2]+($data[1][3])-$data[2][3],
  5.   ($saldoInicial)+($data[1][1])-$data[2][1]+($data[1][2])-$data[2][2]+($data[1][3])-$data[2][3]+($data[1][4])-$data[2][4]
  6.         );

feo feo....
Tambien podrias usar $aa

Código PHP:
Ver original
  1. $bb = array("Saldo Acumulado",
  2.                         ($saldoInicial)+$aa[1],
  3.                          ($saldoInicial)+$aa[1]+$aa[2]
  4.           ....
  5. );

Sigue siendo feo pero es mas compacto....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 27/12/2013 a las 11:47
  #3 (permalink)  
Antiguo 27/12/2013, 11:38
 
Fecha de Ingreso: diciembre-2013
Mensajes: 5
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problema con arreglo bidimensional

los valores numericos estan sustituidos, en realida estoy llamando campos de una base de datos....... y la verdad es la primera vez que trabajo con arreglos por eso estoy atorado...
la tabla la imprime bien con todos los valores puedes probar el ejemplo e imprime una tabla pero apartir del saldo acumulado de ferbero empieza a fallar
  #4 (permalink)  
Antiguo 27/12/2013, 11:49
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Problema con arreglo bidimensional

Código PHP:
Ver original
  1. $bb = array("Saldo Acumulado",($saldoInicial)+($data[1][1])-$data[2][1],
  2.                     ($data[1][2] - $data[2][2])+$data[5][1] ,
  3.                     "3",
  4.                     "4");

Has completado esta parte?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 27/12/2013, 12:00
 
Fecha de Ingreso: diciembre-2013
Mensajes: 5
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problema con arreglo bidimensional

este seria el arreglo completo.....

Código PHP:
$saldoInicial 5000
$data = array( 
         array(
"Concepto","Enero","Febrero","Marzo","Abril"), 
        array(
"Ingresos",    100,    100,    100,    100), 
        array(
"Egresos",    200,    200,    200,    200), 
        array(
"Deudores",    300,    300,    300,    300), 
        ); 
        
$aa = array("Saldo",($data[1][1]-$data[2][1]),($data[1][2]-$data[2][2]),($data[1][3]-$data[2][3]),$data[1][4]-$data[2][4]); 
        
$bb = array("Saldo Acumulado",($saldoInicial)+($data[1][1])-$data[2][1], 
                    (
$data[5][1] + $data[1][2]) - $data[2][2] , 
                    (
$data[5][2] + $data[1][3]) - $data[2][3], 
                    (
$data[5][3] + $data[1][4]) - $data[2][4]
                    ); 
        
array_push($data,$aa,$bb); 
         
$tblCuatrimestre1 '<table width="100%" border="0" cellspacing="0" cellpadding="0">'
foreach(
$data as $dat){ 
   
$tblCuatrimestre1 .= ' <tr> 
    <td width="20%">'
.$dat[0].'</td> 
    <td width="20%">'
.$dat[1].'</td> 
    <td width="20%">'
.$dat[2].'</td> 
    <td width="20%">'
.$dat[3].'</td> 
    <td width="20%">'
.$dat[4].'</td> 
    <td width="20%">'
.$dat[5].'</td> 
  </tr>'


$tblCuatrimestre1 .= '</table>'
echo 
$tblCuatrimestre1

Etiquetas: arrays, 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 18:12.