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


Add column in html table if new variable in (database) table column

我有一个名为"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

有什么办法可以做到这一点吗?

  • 全部加载到 PHP 数组
  • 迭代一次并通过 $helparr[$line]=array() 收集唯一行,但也收集每行的值array_push($helparr[$line],$vehicle)
  • 再次迭代:对于所有$helparr(输出$line,对于所有$helparr[$line](输出$vehicle))

。猜猜,你的编码工作现在已经完成了一半......

首先,您需要从数据库中获取所有记录,在这里,我使用了一个演示数组$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进行打印。我希望这对你有用!