首页 > 解决方案 > 在表格列中打印多维数组数据

问题描述

我整天尝试了很多,但没有得到预期的输出。我想使用 PHP 在 HTML 表中打印多维数组列方式,但是当我尝试获取数据列方式时,获取数据行或在列中获取数据。

<?php
$result = array
  (
  array("Volvo",22,18),
  array("BMW",15,13),
  array("Saab",5,2),
  array("Land Rover",17,15)
  );

foreach($result as $row){
    foreach($row as $column){
            echo $column . ",<br>";
    }
    echo "</br>";
}
?>

得到这个输出:

沃尔沃
22
18

宝马
15
13

萨博
5
2

路虎
17
15

但是我怎样才能以 3 列方式获取此输出列 3 数组数据,如

沃尔沃 -- 宝马 -- 萨博
22 - - 15 - - 5
18 - - 13 - - 2

标签: phphtmlarrayshtml-table

解决方案


您可以使用下一个想法:

$ar[] = array_column($result,0);
$ar[] = array_column($result,1);
$ar[] = array_column($result,2);

这一步可以优化为

for($i=0;$i<count($result[0]);$i++){
    $ar[] = array_column($result,$i);
} 

然后做

foreach($ar as $col){
    echo '<tr><td>'.$col[0].'</td><td>'.$col[1].'</td><td>'.$col[2].'</td><td>'.$col[3].'</td></tr>';
}

演示

或者使用额外for loop的,优化的:

foreach($ar as $col){
    echo '<tr>';
    for($i=0;$i<count($col);$i++){
        echo '<td>'.$col[$i].'</td>';
    }
    echo '</tr>'; 
}

演示2


推荐阅读