PHP: limite foreach () dichiarazione?

Come posso limitare una dichiarazione foreach ()? Dite che voglio solo eseguire i primi 2 "ciascuno" o qualcosa del genere?

Puoi usare

break; 

o

 foreach() if ($tmp++ < 2) { } 

(la seconda soluzione è ancora peggio)

Ci sono molti modi, uno è usare un contatore:

 $i = 0; foreach ($arr as $k => $v) { /* Do stuff */ if (++$i == 2) break; } 

Un altro modo sarebbe quello di tagliare i primi 2 elementi, tuttavia non è così efficiente:

 foreach (arrays_slice($arr, 0, 2) as $k => $v) { /* Do stuff */ } 

Puoi anche fare qualcosa di simile (fondamentalmente uguale al primo foreach, ma con for):

 for ($i = 0, reset($arr); list($k,$v) = each($arr) && $i < 2; $i++) { } 

dovresti usare la frase break

di solito è usato in questo modo

 $i = 0; foreach($data as $key => $row){ if(++$i > 2) break; } 

allo stesso modo esiste la dichiarazione continua se è necessario saltare alcuni elementi.

In PHP 5.5+, puoi farlo

 function limit($iterable, $limit) { foreach ($iterable as $key => $value) { if (!$limit--) break; yield $key => $value; } } foreach (limit($arr, 10) as $key => $value) { // do stuff } 

I generatori rock.

questa è la soluzione migliore per me 🙂

 $i=0; foreach() if ($i < yourlimitnumber) { $i +=1; }