嗨,我有以下php foreach循环,
<?php
foreach ($row['row'] as $inrow) {
$slots_available = $inrow[2];
$cal_id = $inrow[3];
$selenable=true;
?>
<tr style="width: 100%;background: <?php if($slots_available=='H') echo "rgb(235,235,235)"; else echo 'white'; ?>;" class="tbody_vo_edit">
<td class="thc_vo tblb" width="200" style="border-left: 1px dotted #CFCFCF;font:11px verdana;color:#17375e;background: <?php if($slots_available=='H') echo "rgb(235,235,235)"; else echo 'white'; ?>;"><?= $inrow[0] ?></td>
<td class="thc_vo tblb" width="210" style="border-left: 1px dotted #CFCFCF;font:11px verdana;color:#17375e;background: <?php if($slots_available=='H') echo "rgb(235,235,235)"; else echo 'white'; ?>;"><?php if($slots_available=='H') echo ' '; else { echo $inrow[1]; } ?></td>
<td class="thc_vo tblb " width="140" style="font:11px verdana;color:#17375e;background: <?php if($slots_available=='H') echo "rgb(235,235,235)"; else echo 'white'; ?>;">
<div style="float:right;margin-top:-2px;display:<?php if($slots_available=='H') echo "none"; else echo 'block'; ?>">(<?=$users_occupied?>/<?=$slots_available?>)</div>
</td>
<td class="thc_vo tblb" style="width: 25%;min-width:141px;max-width:141px;padding:5px;background:<?php if($slots_available=='H') echo "rgb(235, 235, 235)"; else echo 'white'; ?>"><?php if($selenb){?><input style="display:none;" type="text" value="" class="tblinput"><?php }?></td>
</tr>
<?php
}
?>
在执行这个命令时,我得到一个表,我想在其中比较第一个ie的值。,$inrow[0] value与第二行第一个值。我想添加另一个标签,如果这两个值是不同的。谁能帮我如何比较这些值。例如:表如下:
time | tasks | slots
05:00 am - 05:55 am | asdfas | 3
05:00 am - 05:55 am | asdasdfasdf | 4
从这个表中,我想比较第一行和第二行的时间值,如果两者不相等,我想在这两行之间添加一行,表示"下一个时隙"。
您可以定义一个变量来保存前一个循环的"time"值。在每个循环中,检查当前"时间"值与前一个,如果它们不同,则渲染额外的行。
示例代码:
$lastTime = "";
forEach (...) {
$time = $inrow[0];
...
$newSlot = strCaseCmp($time, $lastTime);
$lastTime = $time;
if ($newSlot) {?>
<html_for_"new-slot"_row_goes_here...>
<?php } ?>
<html_for_current_timeslot_row_goes_here...>
...
<?php } ?>
请参见简短演示。
(我还冒昧地稍微修改了您的原始代码。)
首先声明一个临时变量并为其赋空值,然后首先将临时变量与$inrow[2]进行比较,然后将$inrow[2]赋值给临时变量,以便下一次循环执行
<?php
$temp='';
foreach ($row['row'] as $inrow) {
$slots_available = $inrow[2];
$cal_id = $inrow[3];
$selenable=true;
if($slots_available==$temp){
some code according to your need and also change the condition according to needs
}
$temp=$inrow[2];
?>
<tr style="width: 100%;background: <?php if($slots_available=='H') echo "rgb(235,235,235)"; else echo 'white'; ?>;" class="tbody_vo_edit">
<td class="thc_vo tblb" width="200" style="border-left: 1px dotted #CFCFCF;font:11px verdana;color:#17375e;background: <?php if($slots_available=='H') echo "rgb(235,235,235)"; else echo 'white'; ?>;"><?= $inrow[0] ?></td>
<td class="thc_vo tblb" width="210" style="border-left: 1px dotted #CFCFCF;font:11px verdana;color:#17375e;background: <?php if($slots_available=='H') echo "rgb(235,235,235)"; else echo 'white'; ?>;"><?php if($slots_available=='H') echo ' '; else { echo $inrow[1]; } ?></td>
<td class="thc_vo tblb " width="140" style="font:11px verdana;color:#17375e;background: <?php if($slots_available=='H') echo "rgb(235,235,235)"; else echo 'white'; ?>;">
<div style="float:right;margin-top:-2px;display:<?php if($slots_available=='H') echo "none"; else echo 'block'; ?>">(<?=$users_occupied?>/<?=$slots_available?>)</div>
</td>
<td class="thc_vo tblb" style="width: 25%;min-width:141px;max-width:141px;padding:5px;background:<?php if($slots_available=='H') echo "rgb(235, 235, 235)"; else echo 'white'; ?>"><?php if($selenb){?><input style="display:none;" type="text" value="" class="tblinput"><?php }?></td>
</tr>
<?php
}
?>