首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在表列中打印多维数组数据

在表列中打印多维数组数据
EN

Stack Overflow用户
提问于 2019-12-09 18:44:03
回答 3查看 221关注 0票数 0

我一整天都试了很多次,但没有达到预期的产量。我希望使用PHP在HTML表中打印多维数组列方式,但是当我尝试获取数据列方式时,获取数据行或获取列上的数据。

代码语言:javascript
复制
<?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

EN

回答 3

Stack Overflow用户

发布于 2019-12-09 19:00:22

你可以用下一个想法:

代码语言:javascript
复制
$ar[] = array_column($result,0);
$ar[] = array_column($result,1);
$ar[] = array_column($result,2);

此步骤可以优化为

代码语言:javascript
复制
for($i=0;$i<count($result[0]);$i++){
    $ar[] = array_column($result,$i);
} 

那就去做

代码语言:javascript
复制
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,优化:

代码语言:javascript
复制
foreach($ar as $col){
    echo '<tr>';
    for($i=0;$i<count($col);$i++){
        echo '<td>'.$col[$i].'</td>';
    }
    echo '</tr>'; 
}

Demo2

票数 0
EN

Stack Overflow用户

发布于 2019-12-09 19:05:34

基本上,您只需要将列索引与行索引切换。然后像你已经做的那样循环通过。所以你需要检查所有的条目两次。

代码语言:javascript
复制
$result = array
  (
  array("Volvo",22,18),
  array("BMW",15,13),
  array("Saab",5,2),
  array("Land Rover",17,15)
  );

$out = array();


foreach($result as $cdx => $col)
{
    foreach($col as $idx => $val)
    {
        // swap the column index with the row index
        $out[$idx][$cdx] = $val;
    }
}

$final = "";

foreach($out as $row)
{

    foreach($row as $col)
    {
        $final .= ($col . ", ");
    }

    $final = substr($final, 0, -2);

    $final .= "\r\n";
}

$final = trim($final);

echo $final;

演示

票数 0
EN

Stack Overflow用户

发布于 2019-12-09 19:08:47

另一个想法可以是创建行和列,然后对行和列使用内爆

代码语言:javascript
复制
$columns = [];
$rows = [];
foreach ($result as $row) {
    foreach($row as $key => $column) {
        $key === 0 ? $columns[] = $row[$key] : $rows[$key][] = $row[$key];
    }
}
echo implode("--", $columns) . "<br>";
foreach ($rows as $row) {
    echo implode("--", $row) . "<br>";
}

输出

代码语言:javascript
复制
Volvo--BMW--Saab--Land Rover
22--15--5--17
18--13--2--15

Php演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59254860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档