Heim >Backend-Entwicklung >PHP-Tutorial >while 和 foreach遍历 效率问题

while 和 foreach遍历 效率问题

WBOY
WBOYOriginal
2016-06-20 12:35:191329Durchsuche

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn