[英]PHP Foreach Loop not using break
我想创建这个循环
<li class="royalSlide">
<div class="celebFixSlider">
<a href=""><img src="" /></a>
<a href=""><img src="" /></a>
<a href=""><img src="" /></a>
<a href=""><img src="" /></a>
<a href=""><img src="" /></a>
<a href=""><img src="" /></a>
</div>
</li>
<li class="royalSlide">
<div class="celebFixSlider">
<a href=""><img src="" /></a>
<a href=""><img src="" /></a>
<a href=""><img src="" /></a>
<a href=""><img src="" /></a>
<a href=""><img src="" /></a>
<a href=""><img src="" /></a>
</div>
</li>
LI和DIV元素是第一个循环,每个Array的链接是6行块。
$imagePath="//site.com/images/celeb1208/";
$productPath="//site.com/product.php?prodref=";
$array = array(
"632_white" => "celeb1208_317_large.jpg",
"631_white" => "celeb1208_316_large.jpg",
"630_white" => "celeb1208_315_large.jpg",
"629_white" => "celeb1208_314_large.jpg",
"628_white" => "celeb1208_313_large.jpg",
"627_white" => "celeb1208_312_large.jpg",
"532_white" => "celeb1208_311_large.jpg",
"531_white" => "celeb1208_310_large.jpg",
"530_white" => "celeb1208_309_large.jpg",
"529_white" => "celeb1208_308_large.jpg",
"528_white" => "celeb1208_307_large.jpg",
"527_white" => "celeb1208_306_large.jpg"
);
$i=0;
foreach ($array as $key => $val)
{
$i++;
echo '
<li class="royalSlide">
<div class="celebFixSlider">
<a href="'.$productPath.''.$key.'">
<img src="'.$val.'" />
</a>';
if($i==6){
echo '</div>
</li>';
break;
}
}
在6个项目之后,中断只是停止代码,它不会暂停并在一侧重新创建循环? 对不起,如果我不清楚。
break;
命令将完全停止循环。 也许你想continue;
这将跳过continue关键字之后的内容,并从其上次中断的地方再次循环。
您需要的是没有间断,也没有继续。
$i=0;
echo '<li class="royalSlide"><div class="celebFixSlider">';
foreach ($array as $key => $val)
{
$i++;
echo '
<a href="'.$productPath.''.$key.'">
<img src="'.$val.'" />
</a>';
if($i==6){
echo '</div>
</li><li class="royalSlide"><div class="celebFixSlider">';
}
}
echo '</div></li>';
// getting data ready
foreach ($array as $key => $val) {
$array[$key] = array(
"href" => $productPath.$key,
"img" => $imagePath.$val
);
}
$data = array_chunk($array,2);
// printing it out
?>
<?php foreach ($data as $array): ?>
<li class="royalSlide">
<div class="celebFixSlider">
<?php foreach ($array as $row): ?>
<a href="<?=$row['href']?>"><img src="<?=$row['img']?>" /></a>
<?php endforeach ?>
</div>
</li>
<?php endforeach ?>
使用“ continue”而不是“ break”;
休息会停止循环
谢谢
尝试此为您的循环
$i=0;
foreach ($array as $key => $val)
{
$i++;
if(($i % 6) == 0){
echo '<li class="royalSlide"><div class="celebFixSlider">';
}
echo '<a href="'.$productPath.''.$key.'"><img src="'.$val.'" /></a>';
if(($i % 6) == 0 && $i!=0){
echo '</div></li>';
}
}
所以你应该使用这个:
echo '<li class="royalSlide">
<div class="celebFixSlider">';
$i=0;
foreach ($array as $key => $val)
{
$i++;
echo '
<a href="'.$productPath.''.$key.'">
<img src="'.$val.'" />
</a>';
if($i==6){
echo '</div>
</li>
<li class="royalSlide">
<div class="celebFixSlider">';
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.