bidimensional数组不打印值

时间:2013-12-27 07:37:30

标签: php sorting multidimensional-array

需要这个数组的帮助,一切正常,除了最后一行我没有得到$data[5][1] + $data[1][2] - $data[2][2]上的值,

$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]);
array_push($data,$aa);
$bb = array("Saldo Acumulado",(5000)+($data[1][1])-$data[2][1],
            $data[5][1] + $data[1][2] - $data[2][2],
            "3",
            "4");
array_push($data,$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 个答案:

答案 0 :(得分:0)

接下来是问题:

$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]);
        array_push($data,$aa);

现在你的$data数组有5个子数组,当你调用$data[5][1]时会出错,因为$data[4]将是最后一个子数组。可能你需要

$bb = array("Saldo Acumulado",(5000)+($data[1][1])-$data[2][1],
            $data[4][1] + $data[1][2] - $data[2][2],
            "3",
            "4");
array_push($data,$bb) ;

答案 1 :(得分:0)

鉴于评论,很明显你的数学出错了。但在我开始之前......通常arrays是零索引的......这意味着第一个项目从零开始,并从那里开始计数。因此,如果给定数组中没有这样的元素,则$data[5][1] + $data[1][2] - $data[2][2]会出错。

其次,对你的主要问题......

完成数学

$data[4][1] + $data[1][2] - $data[2][2]
 //   ^ correct digit here by the way

在给定数组值的情况下,永远不会等于你所声明的数字。但是,考虑到你的问题,我会假设你真的在谈论这一点数学:

(5000)+($data[1][1])-$data[2][1]

你说上面应该等于4800,但从数学角度看,这是不可能的。稍后,在评论中,您声明您的数学以数字4900开头..因此错误变得清晰。将5000更改为4900,它应该根据您的设计工作。当然,你也应该修复你的数组的访问方式,因为没有5个索引(它会是4,我在这里重复一遍)。