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)