Control del flujo en PHP: Bucles II

Valoración del artículo:
Estructura y funcionamiento de los bucles for y foreach. Explicamos como salir de un bucle: Break y continue
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
Bucle for
PHP está provisto de otros tipos de bucle que también resultan muy prácticos en determinadas situaciones. El más popular de ellos es el bucle for que, como para los casos anteriores, se encarga de ejecutar las instrucciones entre llaves. La diferencia con los anteriores radica en cómo se plantea la condición de finalización del bucle. Para aclarar su funcionamiento vamos a expresar el ejemplo de bucle while visto en el capítulo anterior en forma de bucle for:

<?
For ($size=1;$size<=6;$size++)
{
   echo"<font size=$size>Tamaño $size</font><br>\n";
}
?>

Las expresiones dentro del paréntesis definen respectivamente:

-Inicialización de la variable. Valida para la primera vuelta del bucle.

-Condición de evaluación a cada vuelta. Si es cierta, el bucle continua.

-Acción a realizar al final de cada vuelta de bucle.

Bucle foreach
Este bucle, implementado en las versiones de PHP4, nos ayuda a recorrer los valores de un array lo cual puede resultar muy útil por ejemplo para efectuar una lectura rápida del mismo. Recordamos que un array es una variable que guarda un conjunto de elementos (valores) catalogados por claves.

La estructura general es la siguiente:

Foreach ($array as $clave=>$valor)
{
   instruccion1;
   instruccion2;
   …;
}

Un ejemplo práctico es la lectura de un array lo cual podría hacerse del siguiente modo:

<?
$moneda=array("España"=> "Peseta","Francia" => "Franco","USA" => "Dolar");
Foreach ($moneda as $clave=>$valor)
{
   echo "Pais: $clave Moneda: $valor<br>";
}
?>

Este script se encargaría de mostrarnos por pantalla el contenido del array $moneda. No resultaría mala idea crear una función propia basada en este bucle que nos permitiese visualizar arrays monodimensionales y almacenarla en nuestra librería. Esta función podría ser definida de esta forma:

Function mostrar_array ($array)
{
Foreach ($array as $clave=>$valor)
{echo "$clave=>$valor<br>";}
}

Break y continue
Estas dos instrucciones se introducen dentro de la estructura y nos sirven respectivamente para escapar del bucle o saltar a la iteración siguiente. Pueden resultarnos muy prácticas en algunas situaciones.

Comentarios
Fueron enviados 8 comentarios al artículo
1 comentario no revisado
7 comentarios revisados:
Por: AnimAlf
13/8/03
Si se trata de un array multidimensional se podría modificar la función del siguiente modo ...

function mostrar_array ($array)
{
   Foreach ($array as $clave=>$valor)
   {
     echo "$clave => $valor
";
     if (is_array($valor)) mostrar_array($valor);
   }
}

Por: Andrés
10/6/05
No funciona correctamente el ejemplo de moneda/pais, el resultado que me da en pantalla despues de copiar y pegar es este:
"Peseta","Francia" => "Franco","USA" => "Dolar"); Foreach ($moneda as $clave=>$valor) { echo "Pais:" $clave Moneda: $valor"; } ?>
Por: pepe
07/4/06
mu weno <script>alert("Ummm!");</script>
el comentario de arrays multidimensionales.
Por: HéAoPéz
21/5/06
Guillermo Chirino


La parte que dice "is_array($valor)" muestra si $valor es array en caso de serlo vuelve a aplicar el metodo mostrar_array de manera recursiva.

Osea que si el array es una matriz despliega todos lo valores.

Espero me entiendas
Por: jonas
01/2/07
Hola, sobre el item "incremento" en la sentencia.
En ASP es claro a traves de la cláusula STEP.

Generalmente usamos en php el incremento en 1, es decir "++".

He estado en una situación en que el incremento en php debía ser un numero de dos digitos, digamos 64, entonces...la pregunta es, cómo se programan los incrementos....

muchas gracias, y como siempre, felicitaciones.
Por: Makito
03/5/07
Asi de simple, el ++ i el -- es para incremento i de cr emento de "una unidad" , si deseas mas solo debes usar otros operadores... aki el ejemplo...

- - - - - -
For ($size=1;$size<=15;$size+=3)
// Aki cambie el valor de condicion a 15, para ser mas largo... luego use el operador += y un valor x cualkiera...
{
echo"<font size=$size>Tamaño $size</font><br> ";
}
- - - - - -

esto imprimira...

- - - - - -
Tamaño 1
Tamaño 4
Tamaño 7
Tamaño 10
Tamaño 13
- - - - - -
Por: NIgdel
05/11/07
El modo de implementar los incrementos en valores distintos podia ser simplemente:
$var+=$incremento;

Manuales relacionados
Categorias relacionadas
El autor
Rubén Alvarez
Redactor de DesarrolloWeb.com
http://www.desarrolloweb.com
Lectura recomendada
Últimas noticias
Alojados en el grupo