foreach() ステートメントを制限するにはどうすればよいですか? 最初の2つの「それぞれ」か何かだけを実行したいと言いますか?
161170 次
5 に答える
102
多くの方法がありますが、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++) {
}
于 2009-11-01T11:55:22.090 に答える
43
どちらかを使用できます
break;
また
foreach() if ($tmp++ < 2) {
}
(2番目の解決策はさらに悪いです)
于 2009-11-01T11:52:37.900 に答える
25
breakステートメントを使用する必要があります
通常はこのように使用します
$i = 0;
foreach($data as $key => $row){
if(++$i > 2) break;
}
同じように、いくつかのアイテムをスキップする必要がある場合は、 continueステートメントが存在します。
于 2009-11-01T12:02:05.777 に答える
9
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
}
発電機が揺れる。
于 2013-01-29T11:12:45.073 に答える