执行PHP循环直到数组结束OR达到一定数量的迭代?

Joe*_*e W 10 php foreach loops for-loop while-loop

我希望接收一个数组作为输入,从中过滤值,并输出另一个数组.该函数应循环到x迭代.

例如,如果我想输出输入中的所有值,我会使用:

<?php
$i=0;
foreach ($array as $data) {
    if ($data['type'] != 'some_value') {
        $formatted_array[$i] = $data;
        $i++;
    }
}
return $formatted_array;    
Run Code Online (Sandbox Code Playgroud)

但如果$array有一个大的索引,那$formatted_array将比我需要的大.我尝试使用for具有多个条件的循环,但它似乎陷入无限循环.

我不是交易开发者,所以逻辑很难理解.我没有收到错误,因此很难理解我哪里出错了.

如何在数组结束或函数达到一定的迭代次数之前执行PHP循环?

mea*_*gar 15

使用while循环:

$i = 0;
$limit = 10;
$count = count($array);

while ($i < $limit && $i < $count) {
   $data = $array[$i];
   // your code here
   ++$i;
}
Run Code Online (Sandbox Code Playgroud)


Mic*_*ski 12

你走在正确的轨道上 - 你可以foreach在计算时退出循环.您使用a foreach来遍历整个数组,如果您从未达到规定的最大计数,则将处理整个数组.但如果你达到最大值,就跳出循环.

$i = 0;
// Don't allow more than 5 if the array is bigger than 5
$maxiterations = 5;
foreach ($array as $data) {
  if ($i < $maxiterations) {
    if ($data['type'] != 'some_value') {
        $formatted_array[$i] = $data;
        $i++;
    }
  }
  else  {  // Jump out of the loop if we hit the maximum
     break;
  }
}
return $formatted_array; 
Run Code Online (Sandbox Code Playgroud)