PHP中for
循环和foreach
循环之间有什么区别?
答案 0 :(得分:14)
Foreach非常适合迭代使用键和值的数组。
例如,如果我有一个名为'User'的数组:
$User = array(
'name' => 'Bob',
'email' => 'bob@example.com',
'age' => 200
);
我可以非常轻松地迭代它并仍然使用键:
foreach ($User as $key => $value) {
echo $key.' is '.$value.'<br />';
}
这将打印出来:
name is Bob
email is bob@example.com
age is 200
使用for
循环时,保留密钥的使用会更加困难。
当您在PHP中使用面向对象的练习时,您会发现几乎完全使用foreach
,for
循环仅用于数字或基于列表的事物。 foreach
也会阻止您使用count($array)
来查找数组中元素的总数。
答案 1 :(得分:3)
foreach
专门用于迭代数组或对象的元素。
for
用于做某事......任何......具有已定义的开始条件,停止条件和迭代指令。
因此,for
可用于更广泛的事物。事实上,没有第三个表达式 - 没有迭代指令 - for
变为while
。
示例:
// Typical use of foreach
// It's strength is iterating over arrays & objects
$people = array("Tom", "Dick", "Hairy");
foreach ($people as $person) {
echo "$person <br/>"; }
现在你可以用for
做同样的事了,但为什么要这么麻烦?相反,for
可用于完全不同的事情:
// Prints random names from array until Hairy is picked
for ($people = array("Tom", "Dick", "Hairy"); // initial condition
$people[0] != "Hairy"; // stop condition
shuffle($people) // iteration instructions
) {
echo "$people[0] <br/>";
}
初始条件在for
循环之前完成,无论如何。如果停止条件的计算结果为false
,则循环将立即停止。更改指令在每个循环结束时执行。请注意,更改说明不必是增量。
以下是通过省略迭代指令将for
循环转换为while
循环的示例。
// Does the loop a random number of times.
// No thired expression
for ($rand = function() {$array = array(true, true, true, true, false);
shuffle($array);
return $array;
};
current($rand());
// empty third expression
) {
echo "I bring nothing to the table.<br/>";
}
答案 2 :(得分:1)
应该很简单
foreach
抽象出一些复杂性,通常更容易。每当我不需要知道数组的数字索引时,我就会使用它,或者$key => $value
不会提供给我。
for
是较旧的C样式,您必须首先执行count()
,以便了解循环所需的迭代次数。当您需要知道索引,或向后计数或在不同组中逐步执行时,它非常有用。
答案 3 :(得分:1)
“for”循环为您提供一个递增的数字(最常用),您可以按照自己喜欢的方式使用。
“foreach”是一个特殊的构造,用于查看数组的连续成员。
例如,您可以使用“for”循环来创建执行“foreach”操作的内容。但是foreach用较少的代码来做到这一点。
答案 4 :(得分:0)
Foreach基本上是执行以下操作的快捷方式
//Foreach method
foreach ($myArray as $myVar)
{
}
//Normal for equivalent
for ($i = 0; $i < $limit; $i++)
{
$myVar = $myArray[$i];
}
但是还有其他问题,read this关于它的文章
答案 5 :(得分:0)
foreach
用于迭代数组而不是其他任何内容
for
是通用的基于计数器的循环
答案 6 :(得分:0)
更好更简单的答案是: Foreach和For循环之间的区别: -
1. Foreach Loop:- Details are following.
a) Foreach loop used when you have an array, without array it's not worked.
b) Loop working at the end of array count. For example an array have 5 value
then loop run 5 times.
c) Syntax is following.
$array = array("Surinder","Rahul","Manoj","Bharti","Rana","Manish");
Foreach($array as $name ){
echo "Employe Name is ".$name.".";
}
This will print as following.
Employe Name is Surinder.
Employe Name is Rahul.
Employe Name is Manoj.
Employe Name is Bharti.
Employe Name is Rana.
Employe Name is Manish.
2. For Loop:- Details are following.
a) For loop used according to condition.
b) Loop working at the end of given condition.
c) Syntax is following.
$array = array("Surinder","Rahul","Manoj","Bharti","Rana","Manish");
For($i=0;$i<6;$i++){
echo "Employe Name is ".$array[$i].";
}
At the place of 6,You can used count array function.
This will print as following.
Employe Name is Surinder.
Employe Name is Rahul.
Employe Name is Manoj.
Employe Name is Bharti.
Employe Name is Rana.
Employe Name is Manish.
These are the difference between Foreach and for loop.
有关详情,请访问:http://ibmphp.blogspot.com/2012/10/difference-between-foreach-and-for-loop.html
答案 7 :(得分:0)
for 循环,我们对此一无所知迭代次数。
此外, foreach 循环仅用于迭代数组和对象。
您可以参考此链接,以便更好地了解 for 和 foreach 循环之间的区别
https://www.quora.com/What-is-the-difference-between-for-and-foreach-in-php