Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在表列中打印多维数组数据_Php_Html_Arrays_Html Table - Fatal编程技术网

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

Php 在表列中打印多维数组数据,php,html,arrays,html-table,Php,Html,Arrays,Html Table,我一整天都在努力,但没有达到预期的效果。我想使用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 $c

我一整天都在努力,但没有达到预期的效果。我想使用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

您可以使用下一个想法:

$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);
} 

基本上,您只需要切换列索引和行索引。然后像以前一样循环。因此,您需要对所有条目进行两次检查

$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;

另一个想法是创建行和列,然后用于行和列:

$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>";
}

太多东西了:几周前,同样的问题(完全相同的数据)被问到并回答了。这看起来像是一个家庭作业。
$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;
$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>";
}
Volvo--BMW--Saab--Land Rover
22--15--5--17
18--13--2--15