如果(数据库)表列中有新变量,则在html表中添加列

时间:2016-03-13 19:40:33

标签: php mysql html-table

我有一张名为' traffic'和两列“' line' (有超过50行)和' vehicle' (超过300)。该表包含所有线路及其所依赖的车辆的列表。每条线都有几辆车,我需要逐行对它们(车辆)进行分组。

line     | vehicle
______________________
line_a   | veh1
line_a   | veh12
line_a   | veh123
line_b   | veh14
line_b   | veh15
line_b   | veh16
line_c   | veh17
line_c   | veh18

预期产出

line_a   |    line_b   |    line_c   | .... to line 50
______________________________________
veh1          veh14         veh17
veh12         veh15         veh18
veh123        veh16

有什么办法吗?

2 个答案:

答案 0 :(得分:0)

  • 将所有内容加载到php数组
  • 迭代一次并通过$ helparr [$ line] = array()收集唯一的行,但也收集每行的值array_push($ helparr [$ line],$ vehicle)
  • 再次迭代:for all $ helparr(输出$ line,所有$ helparr [$ line](输出$ vehicle))

...猜测,你的一半编码工作现在就完成了......

答案 1 :(得分:0)

首先你需要从数据库中获取所有记录, 这里我使用的是一个演示阵列$input,例如,从数据库中取出时不需要这个数组,可以从foreach

开始
<?php 
$input = array(0=>array('line'=>'line_a','vehicle'=>'veh1'),
               1=>array('line'=>'line_b','vehicle'=>'veh2'),
               2=>array('line'=>'line_c','vehicle'=>'veh6'),
               3=>array('line'=>'line_a','vehicle'=>'veh5'),
               4=>array('line'=>'line_c','vehicle'=>'veh9')
         );

$newArr =array();
foreach($input as $key =>$val)
{
    $newArr[$val['line']][] = $val['vehicle'];
}
echo "<pre>"; print_r($newArr);

?>

您的$newArr看起来像这样

Array
(
    [line_a] => Array
        (
            [0] => veh1
            [1] => veh5
        )

    [line_b] => Array
        (
            [0] => veh2
        )

    [line_c] => Array
        (
            [0] => veh6
            [1] => veh9
        )

)

您的车辆根据各自的线路进行分类,您可以根据需要使用$newArray进行打印。 我希望这对你有用!