首页 > 解决方案 > 将两个foreach循环合并为一个并将其解析为表格行

问题描述

我正在编写如下所示的 php/html 代码,其中我想将两个 php 代码合并为一个。

第一个 foreach 循环:

foreach ( $programs as $program)    {
echo '
<tr>
   <td style="width:8%; text-align:center;">'.$program["series_title"].'</td>
   <td style="width:8%; text-align:center;">'.$program["episode_title"].'</td>
   </tr>
';
}

第二个foreach循环:

<?php   foreach ($mp4_files as $file ) {
   ?>
<tr>
   <td style="width:8%; text-align:center;"> <?php echo basename($file, ".mp4"); ?></td>
   <td style="width:8%; text-align:center;"><?php echo date("H:i:s",filemtime("incoming_folder/$file")); ?></td>
   <td style="width:8%; text-align:center;"> <?php echo basename($file); ?></td>
</tr>
<?php
   }
 ?>

合并应该是这样的:

 <tr>

   <td style="width:8%; text-align:center;">'.$program["series_title"].'</td>
   <td style="width:8%; text-align:center;">'.$program["episode_title"].'</td>

   <td style="width:8%; text-align:center;"> <?php echo basename($file, ".mp4"); ?></td>
   <td style="width:8%; text-align:center;"><?php echo date("H:i:s",filemtime("incoming_folder/$file")); ?></td>
   <td style="width:8%; text-align:center;"> <?php echo basename($file); ?></td>

 </tr>

我试过这样的东西,但它似乎不起作用。

 foreach(array_combine($programs, $mp4_files) as $f => $n) {
    echo $f.$n;
    echo "<br/>";
}

问题陈述:

我想知道我应该在上面尝试过的 php 代码中进行哪些更改,以便能够成功合并两个 foreach 循环。

标签: phpxmlforeachhtml-table

解决方案


假设两个数组具有相同的键,您可以使用一个数组的键来访问另一个数组的匹配值。例如:

<?php
foreach ($programs as $key => $program)    { 
   $file = $mp4_files[$key];
?>
   <tr>
   <td style="width:8%; text-align:center;"><?php echo $program["series_title"]; ?></td>
   <td style="width:8%; text-align:center;"><?php echo $program["episode_title"]; ?></td>    
   <td style="width:8%; text-align:center;"><?php echo basename($file, ".mp4"); ?></td>
   <td style="width:8%; text-align:center;"><?php echo date("H:i:s",filemtime("incoming_folder/$file")); ?></td>
   <td style="width:8%; text-align:center;"> <?php echo basename($file); ?></td>    
   </tr>
<?php } ?>

推荐阅读