【发布时间】:2018-02-07 21:12:07
【问题描述】:
我正在使用一个 foreach 循环来遍历一个数组。有了它,我有 $q ,它在每次循环运行时以 1 的值进行迭代。而当值达到总数的1/3时,就是回显出新的div,以便做几列。 但我似乎找不到错误。
$i = 0;
$count = count($segments->getItems());
$countdiv = $count / 3;
$countdiv = number_format((float)$countdiv,0,',','');
$q = 0;
foreach($segments->getItems() as $segment)
{
$q++;
$allusers = 0;
if($segment->getName() === 'All Users') {
$allusers = "checked";
}
?>
<label class="custom-control custom-checkbox">
<input type="checkbox" name="<?php echo $segment->getName();?>" value="segments[]" class="custom-control-input" <?php echo $allusers?>>
<span class="custom-control-indicator"></span>
<span class="custom-control-description"><?php echo $segment->getName();?></span>
</label>
<?php
if($q === $countdiv)
{
?>
</div>
</div>
<div class="col-md-6">
<div class="custom-controls-stacked">
<?php
}
}
【问题讨论】:
-
我会尝试
if($q % (round($count) / 3) === 0),这样您就可以完全删除$countdiv。 -
$q === $countdiv永远不会为真,因为您尝试严格将字符串与整数进行比较。 -
@ChrisForrence 如果他尝试在计数达到 1/3 时执行某项操作,
if($q % $count === 0)将如何工作?假设计数是9,迭代是3,结果将是3,这不会给他他想要的结果。 -
@ChrisForrence 是的,我现在看到了编辑。在您发表评论并单击提交后,我稍微写了评论,但我的办公室互联网决定无法运行,当我的浏览器重新启动时,显然它提交了。这是我什至看到它的唯一原因哈哈。
标签: php arrays if-statement foreach