如何通过表行而不是php中的列来回显多维数组值[关闭]

Posted

技术标签:

【中文标题】如何通过表行而不是php中的列来回显多维数组值[关闭]【英文标题】:How do I echo multidimensional array values by table rows instead of columns in php [closed] 【发布时间】:2020-08-24 15:35:36 【问题描述】:

我正在尝试使用 php 将数据库中的多维数组显示到 html 表中,逐行而不是逐列显示。 我有以下数组;

Array ( 
  [0] => Array ( 
       [0] => Paracetamol 
       [1] => Caffeine
       [2] => Pase 
   ) 
   [1] => Array ( 
       [0] => 12
       [1] => 10
       [2] => 1
   ) 
   [2] => Array (
       [0] => Packets
       [1] => Cartons
       [2] => Containers
   )
)

我尝试使用 foreach,这是我得到的输出;https://jsfiddle.net/fraqy912/1/ 但是,这是我真正想要实现的输出;https://jsfiddle.net/5akgjtvf/3/

【问题讨论】:

请分享您当前的代码,以便我们帮助调试。 你好@Nick,我使用了下面由 Anik-anwar 提供的答案,它奏效了。 【参考方案1】:
<?php 
    $array = Array (
                Array ( 
                   'Paracetamol',
                   'Caffeine',
                   'Pase'
                ),
                Array ( 
                   12,
                   10,
                   1
                ),
                Array ( 
                   'Packets',
                   'Cartons',
                   'Containers'
                )
            );

   function combine($array) 
        array_unshift($array, null);
        return call_user_func_array('array_map', $array);
    

    $array = combine($array);
?>
<table border="1">
        <tr>
        <th>Product_name</th>
        <th>Product_quantity</th>
        <th>Product_size</th>
    </tr>
    <?php foreach($array as $row): ?>
    <tr>
      <td><?=$row[0]?></td>
      <td><?=$row[2]?></td>
      <td><?=$row[1]?></td>
    </tr>
    <?php endforeach ?>

</table>

【讨论】:

非常感谢。当我使用组合功能时,它就像一个魅力......我非常感谢......【参考方案2】:

尝试转置数组

function transpose($array) 
    array_unshift($array, null);
    return call_user_func_array('array_map', $array);

或者

function transpose($array) 
    return array_map(null, ...$array);

【讨论】:

感谢您的回答。起初我无法得到它,但经过一些调整后,它起作用了。谢谢!!【参考方案3】:

其实有很多种方法,我就给其中一种

<?php 
    $myArray = Array (
                Array ( 
                   'Paracetamol',
                   'Caffeine',
                   'Pase'
                ),
                Array ( 
                   12,
                   10,
                   1
                ),
                Array ( 
                   'Packets',
                   'Cartons',
                   'Containers'
                )
            );

    $tableData          = '';
    foreach ($myArray as $datas)
        $tableData      .= '<tr>';

        foreach ($datas as $data)
            $tableData      .= '<td>';
            $tableData      .= $data;
            $tableData      .= '</td>';
        

        $tableData      .= '</tr>';
    
    ?>
    <table border="1">
        <?php
        echo $tableData;
        ?>
    </table>

【讨论】:

您好,非常感谢您的回答。我试过了,但不幸的是,它仍然显示相同。【参考方案4】:

这里有一些东西会给你完成任务的想法。

 <?php
$meds = Array ( 
  [0] => Array ( 
       [0] => Paracetamol 
       [1] => Caffeine
       [2] => Pase 
   ) 
   [1] => Array ( 
       [0] => 12
       [1] => 10
       [2] => 1
   ) 
   [2] => Array (
       [0] => Packets
       [1] => Cartons
       [2] => Containers
   )
);
                    echo "<table>";
                    foreach($meds as $itemz) 
                      echo "<tr>";
                        foreach ($itemz as $item) 
                            echo "<td>".$item."</td>";
                        
                      echo "</tr>";
                      echo "<br >";
                           
                    echo "</table>";
                    ?>

【讨论】:

您好,非常感谢您的回答。我试过了,但不幸的是,它仍然显示相同。

以上是关于如何通过表行而不是php中的列来回显多维数组值[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何根据jQuery数据表中的列值设置表行的颜色

通过(例如:标题或描述)值中的关键字过滤多维数组(PHP)

如何从 PHP 中的多维数组中删除重复值 [重复]

如何将子表值与父表行关联并插入子表值对应于php中的父表行

如何将嵌套的子表值与父表行关联并插入子表值对应于php中的父表行

PHP array_multisort—对多个数组或多维数组进行排序