¿Cuáles son las diferencias entre el bucle for
y el bucle foreach
en PHP?¿cuál es la diferencia entre para bucle y para cada bucle en php
Respuesta
Debe ser bastante simple
foreach
abstrae parte de la complejidad y por lo general es más fácil. Lo uso cuando no necesito saber el índice numérico de la matriz o $key => $value
no me lo proporcionará.
for
es el estilo C más antiguo donde primero debe realizar un count()
para saber cuántas iteraciones requiere el ciclo. Es útil cuando necesita conocer el índice, o contar hacia atrás o avanzar en diferentes grupos.
'expr2' en un' for' puede ser lo que considere la condición final. No tiene que ser 'count()'. Por ejemplo, con un iterador puede hacer 'for ($ it-> rewind(); $ it-> valid(); $ it-> next()) {/ * ... * /}', pero podría también puede ser una devolución de llamada, consulta db, lo que sea. – Gordon
@Gordon: estaba a punto de decir algo similar. Todos aquí parecen pensar que los bucles 'for' solo se pueden usar con números ... –
@Felix @Gordon Bueno, traté de hacerlo un simple ejemplo para recorrer una matriz.Pero gracias por tu aporte. – alex
Foreach es básicamente un atajo para hacer la siguiente
//Foreach method
foreach ($myArray as $myVar)
{
}
//Normal for equivalent
for ($i = 0; $i < $limit; $i++)
{
$myVar = $myArray[$i];
}
Pero hay otros temas también, read this artículo sobre el tema
Foreach es ideal para la iteración a través de las matrices que utilizan claves y valores.
Por ejemplo, si tuviera una matriz llamada 'Usuario':
$User = array(
'name' => 'Bob',
'email' => '[email protected]',
'age' => 200
);
pude recorrer muy fácilmente y seguir haciendo uso de las teclas:
foreach ($User as $key => $value) {
echo $key.' is '.$value.'<br />';
}
Esto imprimiría :
name is Bob
email is [email protected]
age is 200
con for
bucles, es más difícil conservar el uso de las teclas .
Cuando está utilizando la práctica orientada a objetos en PHP, encontrará que utilizará foreach
casi por completo, con for
bucles solo para cosas numéricas o basadas en listas. foreach
también le impide tener que usar count($array)
para encontrar la cantidad total de elementos en la matriz.
foreach
siendo utilizados para iterar matrices y nada más.
for
es el bucle de propósito general basado en contador
A partir de PHP 5, es posible iterar objetos también. – Gordon
Un bucle "for" le da un número incremental (en su uso más común), que se puede utilizar cualquier forma que desee.
"foreach" es una construcción especial hecha para observar a los miembros sucesivos de una matriz.
A modo de ejemplo, se puede utilizar un bucle "for" para crear algo que hace lo mismo que "foreach". Pero Foreach lo hace con menos código requerido.
'for' solo le proporciona un número creciente si lo definió para hacerlo. Las expresiones utilizadas en un 'for' son arbitrarias. – Gordon
foreach
es específicamente para iterar sobre elementos de una matriz o un objeto.
for
es por hacer algo ... cualquier cosa ... que tiene una condición de inicio definido, deja de condiciones, y las instrucciones de iteración.
Por lo tanto, for
se puede utilizar para una gama mucho más amplia de cosas. De hecho, sin la tercera expresión, sin las instrucciones de iteración, un for
se convierte en while
.
Ejemplos:
// Typical use of foreach
// It's strength is iterating over arrays & objects
$people = array("Tom", "Dick", "Hairy");
foreach ($people as $person) {
echo "$person <br/>"; }
Ahora usted podría hacer exactamente lo mismo con for
, pero ¿por qué molestarse? En lugar for
se pueden utilizar para cosas completamente diferentes:
// 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/>";
}
La condición inicial se realiza antes del bucle for
una vez, no importa qué. Si la condición de parada se evalúa a false
, el ciclo se detendrá inmediatamente. Las instrucciones de cambio se realizan al final de cada ciclo. Tenga en cuenta que las instrucciones de cambio no tienen que ser incrementos.
Aquí hay un ejemplo de cómo convertir un bucle for
en un bucle while
al omitir las instrucciones de iteración.
// 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/>";
}
Mejor y respuesta fácil es: Diferencia entre Foreach y de bucles: -
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.
Para más información ir allí: http://ibmphp.blogspot.com/2012/10/difference-between-foreach-and-for-loop.html
para bucle es utilizado si ya sabemos que cuántas veces se debe ejecutar el script pero en el caso de foreach loop, no tenemos ninguna idea sobre el número de iteraciones.
También foreach bucle se utiliza para iterar sólo arrays y objetos.
Puede consultar el enlace para entender mejor la diferencia entre para y foreach bucle -
https://www.quora.com/What-is-the-difference-between-for-and-foreach-in-php
- 1. Ruby: ¿Cuál es la diferencia entre un bucle for y cada bucle?
- 2. Diferencia entre el bucle "while" y el bucle "do while"
- 3. para cada repetición del bucle
- 4. ¿Cuál es la diferencia entre catch {} y catch {continue;} en un bucle foreach C#?
- 5. Diferencia entre i ++ y ++ i en un bucle for
- 6. Contador dentro de xsl: para cada bucle
- 7. XSL XML anidado para cada bucle
- 8. xsl: para cada contador de bucle
- 9. ¿Cuál es la diferencia entre php cli y php cgi?
- 10. ¿Cuál es la diferencia entre $ each (selector) y .Cada $ (selector)()
- 11. para cada bucle no puede inicializar objetos en la matriz
- 12. Código de bucle para cada archivo en un directorio
- 13. Diferencia entre xreadlines y de bucle de un archivo
- 14. Java, ¿Cómo consigo índice/clave actual en "para cada" bucle
- 15. Lote y para el bucle
- 16. ¿Cuál es la diferencia entre ++ $ i y $ i ++ en PHP?
- 17. ¿Cuál es la diferencia entre 'y "en PHP
- 18. ¿Cuál es la diferencia entre session_unset() y session_destroy() en PHP?
- 19. En PHP, ¿cuál es la diferencia entre hash y mhash?
- 20. En PHP, ¿cuál es la diferencia entre 'stripslashes' y 'stripslashes'?
- 21. ¿Cuál es la diferencia entre iconv() y mb_convert_encoding() en PHP?
- 22. ¿Cuál es la diferencia entre $ a y $$ a en php?
- 23. ¿Cuál es la diferencia entre conexión y tiempo de espera de lectura para enchufes?
- 24. PHP para las categorías y subcategorías sin bucle una consulta
- 25. ¿Cuál es la diferencia entre boost :: io_service poll_one y run_one?
- 26. Coffeescript. para/en bucle
- 27. Iniciando un hilo para cada bucle interno en OpenMP
- 28. iteración jQuery cada bucle para dos matrices a la vez
- 29. php, ¿cuál es la diferencia entre strtolower y mb_strtolower?
- 30. ¿Cuál es la diferencia entre LOAD_DEFAULT y LOAD_NORMAL para WebSettings?
* (de referencia) * http://de2.php.net/manual/en /control-structures.for.php y http://de2.php.net/manual/en/control-structures.foreach.php – Gordon
Le sugiero que consulte algunos documentos sobre ambos tipos de bucles. Hay algunas diferencias fundamentales. ¿O tienes un problema específico? De ser así, aclare en su pregunta. –