fetch($sql)) { echo $r['username'].'';//接受结果集">
当前位置:Gxlcms > PHP教程 > while和foreach遍历效率问题

while和foreach遍历效率问题

时间:2021-07-01 10:21:17 帮助过:14人阅读

$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循环吗?

人气教程排行