繁体   English   中英

PHP Foreach循环不使用break

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM