【问题标题】:Foreach php looping in html tableshtml表中的foreach php循环
【发布时间】:2025-11-21 14:30:02
【问题描述】:

使用以下值声明以下项的一维数组:代码、描述、数量和单价: 代码:A001 至 A005 描述:鼠标、键盘、显示器、闪存盘、硬盘 单价:100、2500、200、300、1500 数量:5,5,5,5,5

我尝试使用以下代码,但返回错误

<html>
<body>
<?php

    $product = array ("Code"=> array("A001", "A002", "A003", "A004","A005"),
    "Description"=>array("Mouse", "Monitor", "Keyboard", "FlashDisk", "HardDisk"), 
    "Quantity"=>array("5", "5", "5", "5", "5"),
    "UnitPrice"=>array("100", "2500","200","300","1500"));
?>
<table>
    <tr>
        <th align= center style="font-size: 20px;" colspan="5">COMPUTER STORE</th>
    </tr>
    <tr>
         <td align= center colspan="5">Full Name</td>
    </tr>
    <tr>
        <td height ="20" colspan="5"> </td>
    </tr>
    <tr>
        <td colspan="5"> </td>
    </tr>
    <tr>
        <th align= center style="font-size: 20px;" colspan="5">PRODUCT INFORMATION</th>
    </tr>
    <tr>
        <td height ="20" colspan="5"> </td>
    </tr>
    <tr>
         <th>Code</th>
         <th>Description</th>
         <th>Unit Price</th>enter code here
         <th>Quantity</th>
    </tr>

<?php

foreach ($product as $i_names => $i_values) {

    echo "<tr>"
            echo "<td>$i_values[0]</td>"
            ."<td>$i_values[1]</td>"
            ."<td>$i_values[2]</td>"
            ."<td>$i_values[3]</td>"
            ."<td>$i_values[4]</td>"
        ."</tr>";
}

?>

</table>
</body>
</html>

我希望有一个表格在每列中显示数组详细信息,但它按行显示详细信息。

【问题讨论】:

  • 这个错误告诉你什么?

标签: php html arrays foreach


【解决方案1】:

echo "&lt;tr&gt;"后面缺少分号,应该是echo "&lt;tr&gt;";

【讨论】:

    【解决方案2】:

    您有一些不必要的双引号字符串连接。只需在一行中这样做-

    foreach ($product as $i_names => $i_values) {
           echo "<tr><td>$i_values[0]</td><td>$i_values[1]</td><td>$i_values[2]</td><td>$i_values[3]</td><td>$i_values[4]</td></tr>";
    }
    

    工作演示: http://main.xfiddle.com/eb798d87/foreach.php

    【讨论】:

      【解决方案3】:

      @Ryan 首先我认为你应该重新考虑你的数据结构,因为它没有多大意义......

      这与@Always Sunny 建议的在一行中产生回声无关!其实他提供的 Working Demo 是不行的!

      但展望未来,这可能不是一个优雅的解决方案,但会处理它:

      echo "<tr>";
       foreach ($product as $i_names => $i_values) {
                 echo "<td>$i_values[0]</td>";  
      }
       echo "</tr>";
      
       echo "<tr>";
       foreach ($product as $i_names => $value) {
                 echo "<td>$i_values[1]</td>";          
      }
       echo "</tr>";
      
      
       echo "<tr>";
       foreach ($product as $i_names => $value) {
                 echo "<td>$i_values[2]</td>";          
      }
       echo "</tr>";
      
      
       echo "<tr>";
       foreach ($product as $i_names => $value) {
                 echo "<td>$i_values[3]</td>";          
      }
       echo "</tr>";
      
      
       echo "<tr>";
       foreach ($product as $i_names => $value) {
                 echo "<td>$i_values[4]</td>";          
      }
       echo "</tr>";
      

      【讨论】: