我希望接收一个数组作为输入,从中筛选值,并将输出作为另一个数组。这个函数应该循环到x迭代。
例如,如果我想输出来自输入的所有值,我将使用:
<?php
$i=0;
foreach ($array as $data) {
if ($data['type'] != 'some_value') {
$formatted_array[$i] = $data;
$i++;
}
}
return $formatted_array; 但是如果$array有一个很大的指数,$formatted_array就会比我所需要的要大。我尝试使用具有多个条件的for循环,但它似乎被困在无限循环中。
我不是一个专业的开发者,所以这个逻辑很难理解。我没有错误,所以很难理解我到底在哪里出错。
如何在数组结束之前执行PHP循环,或者直到函数达到一定数量的迭代?
发布于 2011-09-01 17:59:07
您在正确的轨道上-您可以退出foreach循环,当您达到您的计数。您使用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; 发布于 2011-09-01 17:59:41
使用while循环:
$i = 0;
$limit = 10;
$count = count($array);
while ($i < $limit && $i < $count) {
$data = $array[$i];
// your code here
++$i;
}发布于 2011-09-01 18:00:33
$max_iterations = 100;
for ($i=1;$i <=$max_iterations;$i++)
{
if ($i <= count($array))
//do what u need
else
break;
}https://stackoverflow.com/questions/7274392
复制相似问题