我有这个PHP循环,
foreach($returnedContent as $k => $v) {
$imageName = str_replace($replaceData, "", $v['contentImageName']);
echo "<a class='contentLink' href='".base_url()."welcome/getFullContent/$v[contentId]'>";
echo "<img src='/media/uploads/".strtolower($v['categoryTitle'])."/".$imageName."_thumb.png' alt='$v[contentTitle]' />";
echo "</a>";
}
一旦lopp完成,我希望有可能做循环打印x数量的灰色盒子这是可能的,如果是这样,基本上如果第一个循环返回1个项目我需要第二个循环打印输出11框,如果第一个返回9个项目,我需要第二个循环返回3个框。
有意义吗?任何人都可以帮助我吗?
答案 0 :(得分:2)
因此,如果你想要总共12个盒子,设置一个计数器并减少:
$boxes = 12;
foreach($returnedContent as $k =>$v){
// all your previous stuff
$boxes--;
}
for($i = 0; $i < $boxes; $i++){
// print your box here
}
根据您的应用程序,您可能还需要检查$ returnContent中的项目数是否为&lt; = $ boxes。如果它大于$ box,你将不会收到错误,但你会得到超过$ box图像的行。
答案 1 :(得分:0)
只需保留一个计数器并为每次循环迭代递增,然后添加
for (;$counter < 11; ++$counter) {
do_loop_stuff();
}
答案 2 :(得分:0)
也许你可以做这样的事情(假设$ returnedContent
被数字索引):
//count to 12 so we get 12 items
for ($i=0; $i<12; $i++) {
//check if there is an entry to print
if (isset($returnedContent[$i])) {
$v = $returnedContent[$i];
$imageName = str_replace($replaceData, "", $v['contentImageName']);
echo "<a class='contentLink' href='".base_url()."welcome/getFullContent/$v[contentId]'>";
echo "<img src='/media/uploads/".strtolower($v['categoryTitle'])."/".$imageName."_thumb.png' alt='$v[contentTitle]' />";
echo "</a>";
} else {
//draw grey box
}
}
答案 3 :(得分:0)
在第一个循环之后,您可以执行以下操作:
for($i = 0; $i < 12 - count($returnedContent); $i++)
{
// print the grey boxes.
}
答案 4 :(得分:0)
嗯,我不确定我理解你但是
$c = count($returnedContent);
将为您提供变量
中的项目数量然后:
$c = (11-$c);
if($c > 0) {
for($i=0;$i<$c;$i++) {
// print gray box
}
}
第一次循环后。您也可以在第一个循环中使用计数器变量。
答案 5 :(得分:0)
我确实将这个问题解释为“在循环完成迭代时执行某些操作”。 在这种情况下,for / foreach循环不是这里的最佳选择。 怎么样
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
//then do whatever else you need to.
?>