繁体   English   中英

双向数组未打印值

[英]bidimentional array is not printing values

需要有关此数组的帮助,所有内容都可以正常工作,但最后一行不会在$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;

接下来的问题是:

$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) ;

给定注释,很明显您在数学上出错了。 但是在我开始之前..通常数组是零索引的..意味着第一项从零开始,然后从零开始计数。 因此,给定数组中没有这样的元素,您的$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,因此我在这里重复一下),您还应该修复如何访问数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM