2010-04-07 3 views
10

В чем разница между циклом for и циклом foreach на PHP?Какая разница между циклами и для каждого цикла в php

+3

* (ссылка) * http://de2.php.net/manual/en /control-structures.for.php и http://de2.php.net/manual/en/control-structures.foreach.php – Gordon

+1

Предлагаю вам посмотреть некоторую документацию по обоим типам циклов. Есть некоторые принципиальные отличия. Или у вас есть конкретная проблема? Если да, уточните в своем вопросе. –

ответ

1

Это должно быть довольно просто

foreach абстрагирует некоторые сложности и, как правило, легче. Я использую это, когда мне не нужно знать числовой индекс массива, или $key => $value не предоставит мне его.

for - это более старый стиль C, где вы должны сначала выполнить команду count(), чтобы вы знали, сколько итераций требует цикл. Это полезно, когда вам нужно знать индекс или рассчитывать назад или проходить в разных группах.

+1

'expr2' в' for' может быть тем, что вы считаете конечным условием. Это не должно быть 'count()'. Например, с помощью Iterator вы можете использовать 'for ($ it-> rewind(); $ it-> valid(); $ it-> next()) {/ * ... * /}', но это может также является обратным вызовом, db-запросом, независимо. – Gordon

+1

@ Gordon: Я собирался сказать что-то подобное. Кажется, все здесь думают, что циклы 'for' могут использоваться только с числами ... –

+0

@Felix @Gordon Ну я попытался сделать его простым примером для перемещения массива.Но спасибо за ваш вклад. – alex

0

Foreach в основном ярлык для выполнения следующей

//Foreach method 
foreach ($myArray as $myVar) 
{ 
} 

//Normal for equivalent 
for ($i = 0; $i < $limit; $i++) 
{ 
$myVar = $myArray[$i]; 
} 

Но есть и другие проблемы тоже read this статья об этом

13

Foreach отлично подходит для переборе массивов, которые используют ключи и значения.

Например, если бы я был массив с именем «User»:

$User = array(
    'name' => 'Bob', 
    'email' => '[email protected]', 
    'age' => 200 
); 

я мог перебирать, что очень легко и по-прежнему использовать ключи:

foreach ($User as $key => $value) { 
    echo $key.' is '.$value.'<br />'; 
} 

Это распечатать :

name is Bob 
email is [email protected] 
age is 200 

с for петлями, это более трудно сохранить использование ключей ,

Когда вы используете объектно-ориентированную практику в PHP, вы обнаружите, что почти полностью используете foreach, с петлями for только для численных или списковых вещей. foreach также не позволяет вам использовать count($array), чтобы найти общее количество элементов в массиве.

0

foreach используется для итерации массивов и ничего больше.
for является общим назначение на основе контр-петлю

+1

С PHP 5 можно также перебирать объекты. – Gordon

1

A «для» петля дает номер приращения (в его наиболее общем пользовании), который можно использовать как угодно.

«foreach» - это специальная конструкция, предназначенная для просмотра последовательных элементов массива.

В качестве примера вы можете использовать цикл «для» для создания чего-то, что делает то, что делает «foreach». Но foreach делает это с менее требуемым кодом.

+1

'for' только дает вам увеличивающееся число, если вы его определили. Используемые выражения в 'for' являются произвольными. – Gordon

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

0

Лучше и простой ответ: разница между Foreach и For Loop: -

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

0

для петли используется, если мы уже знаем, сколько раз должен запускаться сценарий но в случае foreach цикл, мы не имеем понятия о количестве итераций.

Также Еогеаспа цикла используется для итерации только массивы и объектов.

Вы можете передать ссылку для лучшего понимания разницы между для и Еогеаспа цикла -

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

Смежные вопросы