for
循环和foreach
循环在PHP中有什么区别?
for
循环和foreach
循环在PHP中有什么区别?
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)
来查找数组中元素的总数。
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/>";
}
这应该很简单。
foreach
抽象了一些复杂性,通常更容易。每当我不需要知道数组的数字索引或 $key => $value
无法提供它时,我就使用它。
for
是旧的 C 风格,您必须先执行 count()
,以便知道循环需要多少次迭代。当您需要知道索引或向后计数或按不同组进行步进时,它非常有用。
for
循环中,expr2
可以是您认为的结束条件。它不一定要是 count()
。例如,使用迭代器可以这样做:for($it->rewind(); $it->valid(); $it->next()) { /* ... */}
,但也可以是回调函数、数据库查询或其他任何东西。 - Gordonfor
循环只能用于数字... - Felix Klingfor
只会给你一个递增的数字。在 for
中使用的表达式是任意的。 - Gordon//Foreach method
foreach ($myArray as $myVar)
{
}
//Normal for equivalent
for ($i = 0; $i < $limit; $i++)
{
$myVar = $myArray[$i];
}
但是还有其他问题,阅读此文 了解更多
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
foreach
用于迭代数组,除此之外无其他用途。
for
是通用的基于计数器的循环。
for循环用于已知脚本应运行的次数,但在foreach循环中,我们对迭代次数没有任何想法。
此外,foreach循环仅用于迭代数组和对象。
您可以参考链接以更好地了解for和foreach循环之间的区别 -
https://www.quora.com/What-is-the-difference-between-for-and-foreach-in-php