0

我试图弄清楚如何解析我从数据库数据构建的关联数组,以便我可以生成我正在寻找的 html 表格布局。

关联数组结构如下:

Array
(
  [2013] => Array
    (
        [1] => Array
            (
                [Total] => Array
                    (
                        [validleads] => 7327
                        [conversions] => 9856
                        [bookings] => 2449
                    )
                    ... more types for this week
                 [PPC] => Array
                    (
                        [validleads] => 884
                        [conversions] => 1109
                        [bookings] => 605
                    )
            )
          .. more weeks for 2013
    )
  [2012] => Array
    (
        [1] => Array
            (
                [Total] => Array
                    (
                        [validleads] => 9423
                        [conversions] => 12459
                        [bookings] => 2629
                    )
                [PPC] => Array
                    (
                        [validleads] => 955
                        [conversions] => 1237
                        [bookings] => 601
                    )
    )
)

因此,有一个全局数组$data

理想的表结构是

| Week | Total 2013 | Total 2012 | PPC 2013 | % PPC 2013  |  PPC 2012  | % PPC 2012 |  Other types 2013  | % Other types 2013 | Other types 2012 | % Other types 2012  
|  01  |    7327    |    9423    |   884    |   12.06%    |    955     |    10.13%  |                    |                    |                  |                              

这些百分比只是通过将一年中那一周的数字除以一年中那一周的总数乘以 100 得出的。

我要生成的表格布局是一年中每周生成一个表格行,其中包含每年该周的总数以及每年该周每种类型的总数以及该总数占总总数的百分比那年的一周....

对不起,如果这很复杂......

问题是我只是想不出如何以 HTML 表格格式生成我想要的东西。

我知道有些foreach是必需的,但就我所知。

4

2 回答 2

1

像这样的东西你需要做一些工作,基本上你必须以不同的方式布置你的桌子才能让它工作/看起来正确,但应该是可行的。下面的代码并不完美,但希望能帮助您解决问题。

for ($i=0;$i<count($data);$i++) {
     //initial loop for year
    echo "Year = ".$data[$i]."<br />";
     for ($z=0;$z<count($data[$i]);$z++) {
     //secondary loop for year
     echo "Week =".$data[$i][$z]."<br />";
     //no need to loop through final array if its always jsut total and ppc if its variable on the final loop another for will be needed though
    echo "Totals: ".$data[$i][$z]['Total']['validleads']." etc etc";
    echo "Totals: ".$data[$i][$z]['PPC']['validleads']." etc etc";

    }
    }
于 2013-02-07T14:47:18.553 回答
0

我尝试使用多个 foreach 打印您的数组,它没有按照您的要求执行,但它会给您一些想法,如何使用 foreach 解析数组请看一下

foreach($complexArray as $k =>$v) { echo $k."=>"; foreach($v as $kx=> $vx) { echo $kx."=> "; foreach($vx as $ky =>$vy) { echo $ky.":=> "; foreach($vy as $kz =>$vz) { echo $kz."=>".$vz."<br>"; } }

        }

}

于 2014-02-25T13:37:51.013 回答