for loop&的区别是什么?对于php中的每个循环

时间:2010-04-07 07:53:47

标签: php

PHP中for循环和foreach循环之间有什么区别?

8 个答案:

答案 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中使用面向对象的练习时,您会发现几乎完全使用foreachfor循环仅用于数字或基于列表的事物。 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/>"; }

Working example

现在你可以用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/>";
}

Working example

初始条件在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/>";
}

Working example

答案 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)

如果我们已经知道脚本应该运行多少次,但是在 foreach 循环的情况下,我们使用了

for 循环,我们对此一无所知迭代次数。

此外, foreach 循环仅用于迭代数组对象

您可以参考此链接,以便更好地了解 for foreach 循环之间的区别

https://www.quora.com/What-is-the-difference-between-for-and-foreach-in-php