【问题标题】:Print multidimensional associative array column ways in html table [closed]在html表中打印多维关联数组列方式[关闭]
【发布时间】:2019-12-10 21:14:48
【问题描述】:

我是 PHP 初学者,我在多维数组中有大量数据

$result = 
array
    (
    array(
        array("name" => "Volvo", "price" => 2222, "model" =>18),
        array("name" => "Tata", "price" => 2222, "model" =>18),
        array("name" => "Asoka", "price" => 2222, "model" =>18),
        ),
    array(
        array("name" => "BMW", "price" => 2222, "model" =>17),
        array("name" => "Benz", "price" => 2222, "model" =>17),
        array("name" => "Maroti", "price" => 2222, "model" =>17),
        ),
    array(
        array("name" => "porse", "price" => 25648, "model" =>16),
        array("name" => "farari", "price" => 25486, "model" =>16),
        array("name" => "Volvo", "price" => 25422, "model" =>16),
        ),

    );

我使用 foreach 循环遍历数组,并打印模型行方式,

foreach($result as $k => $datas){
         echo $datas[$k]['model'].'-->';
            foreach($datas as $key => $data){
             //print_r($data);
                 echo $data['price'] ;
                 echo $data['name'].'-*-';
              }
              echo '<br>';
         }

当我运行这段代码时,我会收到以下输出:

18-->2222Volvo-*-2222Tata-*-2222Asoka-*-
17-->2222BMW-*-2222Benz-*-2222Maroti-*-
16-->25648porse-*-25486farari-*-25422Volvo-*-

但是,我正在尝试在 html 表中以与以下类似的方式打印此数组的列方式:

   18   -->     17   -->    16-->
2222-Volvo  2222-BMW      25648-porse
2222-Tata   2222-Benz     25486-farari
2222Asoka   2222-Maroti   25422-Volvo

【问题讨论】:

标签: php foreach html-table


【解决方案1】:

试试这个:

<div style='display:flex; flex-direction: row; flex-wrap: wrap;'>

<?php
foreach($result as $k => $datas){
    echo "<div style='display:flex; flex-direction: column;'>";
    echo  "<div>" . $datas[$k]['model'] . "--></div>";
    foreach($datas as $key => $data){
        //print_r($data);
        echo "<div>" . $data['price'] . "-" . $data['name'] . "</div>" ;
    }
    echo '</div>';
}
?>

</div>

输出是:

如你所见,逻辑是纯 HTML/CSS :

  • 首先,我将您的数据包装在一个 flex 容器中,其方向为 rowwrap,因此如果您有很多元素,它们会走在下一行。
  • 现在在您的 foreach 中,每个元素都被包裹在另一个 flex div 中,但方向为 column :因此该元素中的每个新 div 都将显示在上一个。
  • 里面的所有 div 都是简单的 div,现在轮到你做一些 css 来使文本居中,添加填充或其他任何东西

这是你所期待的吗?如果您对 flexbox 有疑问,请查看:https://css-tricks.com/snippets/css/a-guide-to-flexbox/

【讨论】:

  • 兄弟@Mickaël Leger 谢谢你,你节省了我的另一天,但是当我把我的价值放在桌子上时,然后再次以行方式显示。
  • 如果我想以列的方式显示数据,那么表格不适合显示这个?
  • Flexbox 更...灵活,我认为。使用表格,您需要提前知道您将拥有多少行,多少列,并且在您的 foreach 中,您需要将所有第一个元素放在第一行,然后将第二行中的所有第二个元素放在右列中,等等。我认为这比仅仅使用 flexbox 更难
猜你喜欢
  • 1970-01-01
  • 2020-04-11
  • 1970-01-01
  • 2013-11-08
  • 2013-04-15
  • 1970-01-01
  • 2014-05-17
  • 2018-09-30
相关资源
最近更新 更多