每行显示 5 个数组值

display 5 arrays values per row

我正在尝试制作日历:

<table border="1">
       <tr><th colspan="7"><?php echo $current_month ?></th></tr>
        <tr>
         <?php foreach ($days as $day) {
            echo "<th>" . $day . "</th>";
         } ?>           
        </tr>
    <tr>
    <?php  
      foreach($keys as $row => $value) {
         echo "<td>" . $value . "</td>";
      }
    ?>
    </tr>
  </table>

如何才能每行回显 7 个值?正如您在图像中看到的,它在同一行中显示所有日期。 (当然,因为我已经把它放在同一个,但是,我怎样才能让它每 7 个回声值开始一个新的?

谢谢!!!

迭代计数器是一种非常简单的方法。

<table border="1">
       <tr><th colspan="7"><?php echo $current_month ?></th></tr>
        <tr>
         <?php foreach ($days as $day) {
            echo "<th>" . $day . "</th>";
         } ?>           
        </tr>
    <tr>
    <?php
      $i = 0;   // Begin at 0 days written
      foreach($keys as $row => $value) {
          if ($i == 7){
             // Create new table row after every 7th iteration
             print "</tr><tr>";   // Add \n or \t for output formatting
             $i = 0;
          }             

          echo "<td>" . $value . "</td>";

          $i++;   // Increment $i each iteration
      }
    ?>
    </tr>
  </table>

试试下面的代码,

您可以拆分数组为特定大小的,从这里array chunk[=查看更多相关信息12=]

<?php
$current_month = 'Oct';
$days = array('1',2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31);
$chunk = array_chunk($days,7);
?>
<table border="1">
    <tr>
        <th colspan="7"> <?php
echo $current_month; ?>
        </th>
    </tr>
    <?php
foreach($chunk as $day) {
    echo '<tr>';
    foreach($day as $key) {
        echo "<th>" . $key . "</th>";
    }
    echo '</tr>';
} ?>
</table>

您可以使用模数来检查它是否到达第七个元素并结束该行。

<?php  
  foreach($keys as $row => $value) {
     if ($value % 7 == 0) {
        echo "<td>" . $value . "</td></tr><tr>";
     } else {
        echo "<td>" . $value . "</td>";
     }
  }
?>