2013-01-04 29 views
1

我有這樣的代碼。PHP - foreach數組循環。隱藏最後50%的數組使用計數器

$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); 
} 

有人能告訴我正確的語法嗎?

回答

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); 
+0

這將只添加要顯示的內容的圖像,然後將停止循環使用中斷保存幾毫秒。 – Adder

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,應用過濾器的休息?

0

你需要打破foreach循環。

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

我覺得這可能是工作:

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

雖然它是更好地使用break;正如Simon R所說。