PHP如何在循环中调用多个数组对应值批量输出HTML表格行
实现方案
你之前提前缓存表格行到$hostingItem的方式会直接执行PHP代码,无法重复填充变量,所以改为循环内逐行渲染的方式即可,具体步骤如下:
步骤1:整理所有对应数组
先确认你所有变量的对应数组,示例格式如下(替换为你的实际数组值即可,要求所有数组下标一一对应,同一下标的值属于同一条主机数据):
$hostingArr = ['主机A', '主机B', '主机C']; // 对应$hosting变量的数组 $hostingStatusArr = ['Active', 'Expired', 'Pending']; // 对应$hostingStatus变量的数组 $hostingStatusColorArr = ['success', 'danger', 'warning']; // 对应$hostingStatusColor变量的数组 $hostingPriceArr = [9.99, 15.99, 29.99]; // 对应$hostingPrice变量的数组 $hostingExpArr = ['2025-10-01', '2024-03-15', '2024-07-20']; // 对应$hostingExp变量的数组 $hostingPeriodArr = ['年付', '半年付', '季付']; // 对应$hostingPeriod变量的数组 $websiteArr = ['demo1.com', 'demo2.com', 'demo3.com']; // 对应$website变量的数组
步骤2:循环渲染表格行
在你的表格<tbody>标签内加入以下循环代码即可:
<tbody> <?php // 循环3次,下标从0到2对应数组的3个值 for ($i = 0; $i < 3; $i++) { // 为当前循环的变量赋值,取对应下标的数组值 $hosting = $hostingArr[$i]; $hostingStatus = $hostingStatusArr[$i]; $hostingStatusColor = $hostingStatusColorArr[$i]; $hostingPrice = $hostingPriceArr[$i]; $hostingExp = $hostingExpArr[$i]; $hostingPeriod = $hostingPeriodArr[$i]; $website = $websiteArr[$i]; ?> <tr> <td class="text-center"><?php echo $hosting; ?></td> <td class="text-center"><?php echo '<span class="badge badge-'. $hostingStatusColor . ' badge-pill">' . $hostingStatus . '</span>'?></td> <td class="text-center"><?php echo "€" . $hostingPrice; ?></td> <td class="text-center"><?php echo $hostingExp; ?></td> <td class="text-center"><?php echo $hostingPeriod; ?></td> <td class="text-center"> <div class="toolbar"> <div class="toolbar-toggle">...</div> <ul class="toolbar-dropdown animated fadeInUp table-controls list-inline"> <li class="list-inline-item"><a href="https://<?php echo $website?>" target="_blank" class="bs-tooltip" data-original-title="View"><i class="flaticon-view-3"></i></a></li> <li class="list-inline-item"><a href="services.php" class="bs-tooltip" data-original-title="Maintenance"><i class="flaticon-settings-4"></i></a></li> <?php if ($hostingStatus == "Active") { echo '<li class="list-inline-item"><a href="javascript:void(0);" class="bs-tooltip" data-original-title="Request Deactivation"><i class="flaticon-circle-cross"></i></a></li>'; } else { echo '<li class="list-inline-item"><a href="javascript:void(0);" class="bs-tooltip" data-original-title="Request Activation"><i class="flaticon-single-circle-tick"></i></a></li>'; } ?> </ul> </div> </td> </tr> <?php } ?> </tbody>
可选优化
如果后续数组长度可能变化,不需要固定循环3次,可以把循环条件改为for ($i = 0; $i < count($hostingArr); $i++),会自动适配数组内的元素数量输出对应行数。
内容的提问来源于stack exchange,提问作者Dinos
相关产品推荐
相关产品推荐

