将两个foreach循环合并为一个并解析为表格行

时间:2019-05-19 04:39:02

标签: php xml foreach html-table

我正在处理如下所示的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循环。

1 个答案:

答案 0 :(得分:1)

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

<?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 } ?>