Foreach()ステートメントを制限するにはどうすればよいですか?最初の2つの「各」または何かを実行したいだけですか?
どちらかを使用できます
break;
または
foreach() if ($tmp++ < 2) {
}
(2番目の解決策はさらに悪いです)
多くの方法がありますが、1つはカウンターを使用することです。
$i = 0;
foreach ($arr as $k => $v) {
/* Do stuff */
if (++$i == 2) break;
}
他の方法は最初の2つの要素をスライスすることですが、これは効率的ではありません:
foreach (array_slice($arr, 0, 2) as $k => $v) {
/* Do stuff */
}
次のようなこともできます(基本的に最初のforeachと同じですが、forを使用):
for ($i = 0, reset($arr); list($k,$v) = each($arr) && $i < 2; $i++) {
}
PHP 5.5+では、次のことができます
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=0;
foreach() if ($i < yourlimitnumber) {
$i +=1;
}