欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

while 和 foreach遍历 效率问题

程序员文章站 2022-04-28 18:50:22
...
$sql=$empire->query("select * from member");
while($r=$empire->fetch($sql))
{
echo $r['username'].'
';//接受结果集
}
这样没有问题
////////////////////////////////////////
$sql=$empire->query("select * from {$dbtbpre}enewsmember");
$rows = mysql_fetch_array($sql);
foreach($rows as $key => $value){
echo $value.'
';
}
这样就遍历一行
////////////////////////////////////////
$sql=$empire->query("select * from {$dbtbpre}enewsmember");
while ($rows = mysql_fetch_array($sql)){
foreach($rows as $key => $value){
echo $value.'
';
}
}
第三种就遍历全部遍历出来了。
foreach 比 while更能提升效率,可是第三种还是使用了while接受数组呀,这样跟直接while循环出来,再效率上还有什么区别吗?

还有其他形式接受结果集吗?


回复讨论(解决方案)

while大多数用在不确定个数的情况下
foreach相反

虽然都是循环功能不一样,不具备可比性

foreach 将数组传入系统内部进行循环,效率要比 for 高
无论是 foreach 还是 for 都是针对确定次数的循环

作为特例, for 循环也可这样写
for(; $rows = mysql_fetch_array($sql);;) {}
这就是 while($rows = mysql_fetch_array($sql)) {} 了

$sql=$empire->query("select * from member");
while ($rows = mysql_fetch_array($sql)){
foreach($rows as $key => $value){
echo $value.'
';
}
}
////////////////////////////////////
这种效率高,还是直接while循环效率高。

有办法不用while 直接用foreach循环吗?