PHP - foreach数组循环。使用计数器隐藏数组的最后50%

时间:2013-01-04 14:04:15

标签: php arrays foreach

我有一些像这样的代码。

$counter = 1;
$content = "";
foreach($images as $image) {
    $content .= "<li><img src='".$image['images_image'][1]['thumb']."'></li>";
    $counter++;
}
echo apply_filters('images_filter', $content);

上述代码使用WordPress过滤器隐藏整个内容。但我想只隐藏最后50%的图像。

假设我有15张图片。

$hide = floor( $counter / 2 ); //value will be 7

所以我想只隐藏8到15的图像。

我试过这样的事。但它不起作用。

if ($counter >= $hide) {
    echo apply_filters('images_filter', $content);
}

有人能告诉我正确的语法吗?

4 个答案:

答案 0 :(得分:1)

我不知道图像过滤器,但这应该有效:

  $show = ceil( count($images) / 2 );      
  $counter = 1;
  $content = "";
  foreach($images as $image){
        if($counter<=$show){
            $content .= "<li><img src='".$image['images_image'][1]['thumb']."'></li>";
        }else{
            break;
        }
        ++$counter;
     }
    echo apply_filters('images_filter',$content);

答案 1 :(得分:0)

尝试这样的事情:

$counter = 1;
$content = "";
$hide = floor( $counter / 2 ); //value will be 7
foreach($images as $image){

    if ($counter >= $hide) $content .= "<li><img src='".$image['images_image'][1]['thumb']."'></li>";
    else echo "<li><img src='".$image['images_image'][1]['thumb']."'></li>";
    $counter++;
}

    echo apply_filters('images_filter',$content);

回显普通的HTML,将过滤器应用到其余部分吗?

答案 2 :(得分:0)

你需要打破foreach循环。

foreach($images as $image){
   if ($counter <= $hide){ 
      $content .= "<li><img src='".$image['images_image'][1]['thumb']."'></li>";
      $counter++;
   }
   else {
      break;
   }
}

答案 3 :(得分:0)

我认为这可行:

foreach($images as $image) if($counter++ <= $hide) {
// do your stuff
}

虽然使用break更好;正如Simon R所说。