Php Foreach循环与while循环结果
我有点进退两难,在PHP中,foreach循环和while循环在这种情况下似乎做了完全相同的事情:Php Foreach循环与while循环结果,php,sql,foreach,while-loop,Php,Sql,Foreach,While Loop,我有点进退两难,在PHP中,foreach循环和while循环在这种情况下似乎做了完全相同的事情: foreach($execute->result as $item){ echo $item['user_pass'].'<br />'; } foreach($execute->result as$item){ echo$item['user_pass'].; } 及 while($row=mysqli\u fetch\u assoc($execute->resul
foreach($execute->result as $item){
echo $item['user_pass'].'<br />';
}
foreach($execute->result as$item){
echo$item['user_pass'].
;
}
及
while($row=mysqli\u fetch\u assoc($execute->result)){
echo$row['user_pass'].
;
}
我的问题是有什么真正的区别吗。。。?什么时候用一个比另一个好,或者两者都用好。。。。?这两者中有哪一个能给你潜在的更大的感受性…?在这种情况下,它们是完全等效的。
mysqli\u结果
实现了Traversable
接口(如本文所述),因此也可以使用foreach
循环对其进行迭代
我假设,在内部,对mysqli\u结果
对象调用foreach
也执行对mysqli\u fetch\u assoc
的调用
我认为使用第一种方法和第二种方法没有任何区别;然而,第一个看起来更漂亮,对我来说“更PHP5”说到灵活性,第一个当然也更灵活,因为您可以将该代码用于实现可遍历的任何对象,而不仅仅是
mysqli_result
,我发现:
答案是速度上的差异是如此之小,以至于你使用哪一种都无关紧要
我喜欢使用foreach循环来迭代返回的信息,因为我可以访问键和值,根据需要的用途,这些键和值可能会很方便
$returned = array(array("userName" => "Tim"),array("userName" => "Bob"), array("userName" => "Guy"));
foreach($returned as $L1)
{
foreach($L1 as $L2 => $val)
{
if($L2 === "userName")
{
echo 'Hello: ' . $val . "<br />";
}
}
}
$returned=array(array(“userName”=>“Tim”)、array(“userName”=>“Bob”)、array(“userName”=>“Guy”);
foreach($L1返回)
{
foreach($L1为$L2=>$val)
{
如果($L2==“用户名”)
{
回音“你好:”.$val.“
”;
}
}
}
我想这取决于您需要什么值、需要多少控制以及需要它的位置。不确定,我总是使用while循环来选择数据库。我不认为这个问题与发布的问题是重复的。@Qualcuno实际上,您是对的。更像是您在回答中提到的
(可遍历)
的副本。如果OP希望它重新打开,他/她可以质疑它。@Fred ii-它更类似于此,但我认为它仍然有一些独特性,因为它谈论的是一个特定的类。哇,伙计们,我的问题是这些循环在给定情况下的行为……这里的关键情况和我的问题可能与其他人相似,但在某种程度上是独特的。但是谢谢你们试着回答我的问题:)这与有什么不同,而和每一个我只是说我喜欢用什么,并提供另一篇关于快速性的文章。别担心,哈哈。起初我认为链接很有用,但计时结果可能不适用于这种情况:$result不是数组,它是一个理解mysqli\u fetch\u assoc()
的对象。计时可能由每次迭代的fetch_assoc
决定,而不是由任何循环开销决定。从理论上讲,迭代列表元素,然后测试我们是否在列表的末尾,然后迭代到下一个元素,似乎更干净,所以我同意。
$returned = array(array("userName" => "Tim"),array("userName" => "Bob"), array("userName" => "Guy"));
foreach($returned as $L1)
{
foreach($L1 as $L2 => $val)
{
if($L2 === "userName")
{
echo 'Hello: ' . $val . "<br />";
}
}
}