2017-07-06 8 views
1

このforaech文をどのようにして5ループに制限できますか?私はブレークを使うべきだと思うが、どこに置くべきかわからない。このPHP foreach文をわずか5ループに制限します

<?php if(!empty($locations)): foreach($locations as $location): ?> 
<?php if(empty($location["title"])) continue; ?> 
<li> 
    <a href="<?php esc_attr_e($url.$glue.http_build_query($location["query"])) ?>"> 
     <?php esc_html_e($location["title"]) ?> 
    </a> 
    <?php if($param->count): ?> 
    <div class="wpjb-widget-item-count"> 
     <div class="wpjb-widget-item-num"><?php echo intval($location["count"]) ?></div> 
    </div> 
    <?php endif; ?> 
</li> 
<?php endforeach; ?> 
+1

カウンタ変数を使用し、その値が5のときに中断します。 –

+0

foreachの代わりに 'for'ループを使用することをお勧めします。それは正確に何のために作られているので、X(5)回反復します。 – Xatenev

答えて

1

あなたは5つの要素を超えないで新しい配列を取得するためにarray_slice()最初に使用することができます。

$locations = array_slice($locations, 0, 5); 

すべて変更されません。

0

ループにカウンタ変数を使用すると、任意の数を制御/制限できます。

例:

$counter = 0; 
foreach($locations as $location): 
    if($counter++ == 5): 
     break; 
    // Your other content goes here 
    endif; 
endforeach; 
0

の後だけループを破る5に達する... ...変数を追加し、それを各反復をインクリメントします。

<?php $i = 1;?>   

<?php if(!empty($locations)): foreach($locations as $location): ?> 
    <?php if(empty($location["title"])) continue; ?> 
    <li> 
     <a href="<?php esc_attr_e($url.$glue.http_build_query($location["query"])) ?>"> 
      <?php esc_html_e($location["title"]) ?> 
     </a> 
     <?php if($param->count): ?> 
     <div class="wpjb-widget-item-count"> 
      <div class="wpjb-widget-item-num"><?php echo intval($location["count"]) ?></div> 
     </div> 
     <?php endif; ?> 
    </li> 
    <?php if ($i++ == 5) break; ?> 
    <?php endforeach; ?> 
1

の三つの方法があります。

方法1:方法2カウンタVAR

$counter = 1; 

foreach($locations as $location) { 
    // use $location here 

    if($counter++ == 5) { 
     break; 
    } 

} 

とのforeach:foreachの使用$キー=> $ valの

foreach($locations as $key=>$val) { 

    // Your content goes here 
    if($key === 4) { 
     break; 
    } 
} 

方法3:forループ

for($i = 0; $i < 5; $i++) { 
    // Use $locations[$i] here and do something with it 
} 
0

あなたは()のために使用することができます。

<?php if(!empty($locations)): 
for($i=0; $i<5; $i++) { 
    $location = $locations[$i]; 
    <?php if(empty($locations["title"])) continue; ?> 
     <li> 
      <a href="<?php esc_attr_e($url.$glue.http_build_query($location["query"])) ?>"> 
       <?php esc_html_e($location["title"]) ?> 
      </a> 
      <?php if($param->count): ?> 
      <div class="wpjb-widget-item-count"> 
       <div class="wpjb-widget-item-num"><?php echo intval($location["count"]) ?></div> 
      </div> 
      <?php endif; ?> 
     </li> 
} 
0
​​3210
関連する問題