根据数组中项目的数量进行PHP循环

根据数组中项目的数量进行PHP循环,php,loops,Php,Loops,我正在尝试编写一个简短的脚本来查询我的mysql数据库,根据结果的数量(动态),我希望在每个片段上都有这个脚本 例如,$arr是一个mysql_fetch_数组的结果,它有872项,我想运行我的函数9次,每100项运行1次,最后一次运行72项 我该怎么做呢?可能类似于: $length = count($arr); for ($i = 0; $i < ceil($length / 100); $i++) { } $length=计数($arr); 对于($i=0;$i

我正在尝试编写一个简短的脚本来查询我的mysql数据库,根据结果的数量(动态),我希望在每个片段上都有这个脚本

例如,
$arr
是一个
mysql_fetch_数组的结果,它有872项,我想运行我的函数9次,每100项运行1次,最后一次运行72项

我该怎么做呢?

可能类似于:

$length = count($arr);

for ($i = 0; $i < ceil($length / 100); $i++) {

}
$length=计数($arr);
对于($i=0;$i

如果我理解。

只需使用一个
for
循环和一个递增100的递增器。可以使用获取每个循环上的相关行

$dbRows = resultsFromDB();

for($i = 0; $i < count($dbRows); $i+=100) {
  $concernedRows = array_slice($dbRows, $i, 100);

  mySuperFunction($concernedRows);
}
$dbRows=resultsFromDB();
对于($i=0;$i
是否希望循环的每个段最多包含100个项目?出于某种原因,循环仅运行108次($i=108,循环结束后)和
计数($arr)=2700
@或W:“仅”?根据您的说明,一个2700项的数组应该只运行您的函数27次,而不是108次。@或者W,可能会显示您在其中实现它的其余代码。尝试运行
$length=2700;回声室(长度/100美元)。如果输出
27
将count()函数置于for条件中会减慢执行速度,因为它会在每次循环过程中对项目进行计数。@Ondřej Mirtes:不,不会
count()
不会循环遍历要计数的元素,它只是访问
zend\u散列的属性。我邀请您浏览PHP源代码;特别是在和。PHP数组(Zend Hash)中的项数在插入/删除时自动更新。一个包含1000000个元素的数组的计数时间和一个空数组的计数时间一样长。我刚才说的是:@Ondřej Mirtes:他错了。自己试试看,并检查PHP源代码。任何参与者都会告诉您,与将结果存储在变量中相比,调用
count()
的唯一开销是函数调用。就这样<代码>O(1)