2012-01-18 15 views
3

私はforeachループで処理される配列を持っています。配列内の項目数を制限する

foreach($images as $imageChoices) { 
    Do stuff here 
} 

ループ内の最初の4つのアイテムのみを処理するようにループを制限するにはどうすればよいですか?

+0

'for'を使用し、' foreach'を使用しないでください。 'For-Each'、そこにそれを見ることができますか?制限はありません。 –

+0

'for'(キーの整数をインクリメントするとき)は、' $ i'ベースのインクリメンタルに増加する配列キーでのみ動作します。 OPはそれがそうであるかどうかを指定しない。 – salathe

答えて

10

array_slice()機能を使用できます。

foreach(array_slice($images, 0, 4) as $imageChoices) { … } 

これは、あなたがこれまで行ってきたどのように多くの数を維持することなく、必要な値を超えるだけループすることができます。

+0

NB array_sliceには、キーを保存するための追加のパラメータがあります。 – symcbean

+0

@symcbeanに感謝します。この場合、このパラメータは役に立たないでしょう。 – salathe

1

あなたが行うことができます。

for($i=0; $i<count($images) && $i<4; $i++) { 
    // Use $images[$i] 
} 
1

は、カウンタ変数を使用して、各ループを頼りだ増します。

何か以下のようなカウンタ値に応じてチェックを適用します。

$count=1; 

    foreach($images as $imageChoices) { 
    if($count <=4) 
    { 
     Do stuff here 
    } 
    else 
    { 
     Jump outside of loop break; 
    } 
    $count++; 

    } 

ORあなたには、いくつかの作り付けのPHPでもfor loop代わりのforeachとで同じ行うことができますArray機能

for($i=0; $i<4; $i++) { 
    // Use $images[$i] 
} 
+0

for($ i = 0; $ i <4; $ i ++){}メソッドは、配列要素に0,1,2,3という番号が付いていると仮定しています – symcbean

2

基本的には、各繰り返しを$iでカウントし、01でループを停止します4に到達する...

$i = 0; 
foreach($images as $imageChoices) { 
    //Do stuff here 
    $i++; 
    if($i >= 4 { break; } 
} 
0
function process() 
{ 
    //Some stuff 
} 

process(current($imageChoices)); 
process(next($imageChoices)); 
process(next($imageChoices)); 
process(next($imageChoices)); 
関連する問題