所以我有一个像这样的数组:
foreach($obj as $element){
//do something
}
Run Code Online (Sandbox Code Playgroud)
但是如果数组包含50个以上的元素(通常是100个),我只想循环它们中的前50个,然后打破循环.
Cri*_*ian 13
干净的方式:
$arr50 = array_slice($obj, 0, 50);
foreach($arr50 as $element){
// $element....
}
Run Code Online (Sandbox Code Playgroud)
正常方式(这仅适用于具有数字索引和asc顺序的数组):
for($i=0; $i<50 && $i<count($obj); $i++){
$element = $obj[$i];
}
Run Code Online (Sandbox Code Playgroud)
或者如果你想使用,foreach你将不得不使用一个柜台:
$counter = 0;
foreach($obj as $element){
if( $counter == 50) break;
// my eyes!!! this looks bad!
$counter++;
}
Run Code Online (Sandbox Code Playgroud)
Dog*_*ert 10
循环一半.
for($i=0; $i<count($obj)/2; $i++)
{
$element = $obj[$i];
// do something
}
Run Code Online (Sandbox Code Playgroud)
或者如果你想要前50个元素
$c = min(count($obj), 50);
for($i=0; $i<$c; $i++)
{
$element = $obj[$i];
// do something
}
Run Code Online (Sandbox Code Playgroud)
适用于任何数组,不仅适用于具有数字键的数组0, 1, ...:
$i = 0;
foreach ($obj as $element) {
// do something
if (++$i == 50) {
break;
}
}
Run Code Online (Sandbox Code Playgroud)