根据数组中项目的数量进行PHP循环
我正在尝试编写一个简短的脚本来查询我的mysql数据库,根据结果的数量(动态),我希望在每个片段上都有这个脚本 例如,根据数组中项目的数量进行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
$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)
。