Bienvenidos sean a este post, hoy veremos una variante del bucle for.
Como dijimos es una variante del bucle for porque toma una coleccion, otro nombre que pueden tener los arrays, y pasa por todos los objetos que posee para almacenarlos en una nueva variable para ser procesada, usualmente esta funcion es denominada como for mejorado, pasemos a ver su sintaxis:
foreach($array as $variable)
{
... instrucciones ...
}
Como pueden ver es bastante simple donde primero informamos el array a trabajar y luego la variable que almacenara el dato en si, para entender el concepto vamos a tomar el ejemplo de multidimensiones y le aplicaremos este bucle, vamos al archivo multi,php y cambiaremos su codigo de la siguiente manera:
multi.php
<?php
$alumnos = array(
'tinchicus' => array(
'edad'=>44,
'nombre'=>'Martin',
'apellido'=>'Miranda'),
'etortore' => array(
'edad'=>33,
'nombre'=>'Enzo',
'apellido'=>'Tortore'),
'daleman' => array(
'edad'=>32,
'nombre'=>'DarkZero',
'apellido'=>'Aleman'),
'polizzia' => array(
'edad'=>47,
'nombre'=>'Ariel',
'apellido'=>'Polizzi'));
foreach($alumnos as $alumno)
{
print "El alumno " . $alumno['nombre'] . " " . $alumno['apellido']
. " tiene " . $alumno['edad'] . " años de edad.\n";
}
?>
En este caso volvemos a trabajar con un array bidimensional donde establecemos la clave con el «usuario» del alumno seguido de algunos datos del mismo, para ello crearemos cuatro alumnos y le agregaremos los datos de la edad, el nombre y el apellido, lo mismo que hablamos en este post, con nuestro array creado lo siguiente sera utilizar el foreach, donde usamos el array creado anteriormente y lo almacenaremos en alumno, dentro de este mostraremos los tres campos almacenados en cada elemento, probemos de ejecutarlo para ver su salida:
tinchicus@dbn001vrt:~/lenguajes/PHP$ php multi.php
El alumno Martin Miranda tiene 44 años de edad.
El alumno Enzo Tortore tiene 33 años de edad.
El alumno DarkZero Aleman tiene 32 años de edad.
El alumno Ariel Polizzi tiene 47 años de edad.
tinchicus@dbn001vrt:~/lenguajes/PHP$
Observen como nos devolvio todos los valores contenidos en cada elemento y armando cada una de las lineas, vamos a hacer otro ejemplo y para ello tomemos el archivo explode.php pero primero veamos su codigo:
explode.php
<?php
$texto = "Este es un texto de prueba";
$miArray = explode(" ", $texto);
for($i = 0; $i < count($miArray); $i++)
{
echo $miArray[$i] . "\n";
}
$miTexto = implode("_", $miArray);
echo $miTexto . "\n";
?>
Y lo modificaremos de la siguiente manera:
<?php
$texto = "Este es un texto de prueba";
$miArray = explode(" ", $texto);
foreach($miArray as $linea)
{
echo $linea . "\n";
}
$miTexto = implode("_", $miArray);
echo $miTexto . "\n";
?>
Como pueden ver simplemente cambiamos el bucle for por el de foreach donde pasara por todos los elementos y los almacenara en linea, lo unico que haremos sera mostrar el valor de linea por cada pasada, esto es mucho mas simple que el metodo anterior pero si existe este para que necesitamos el otro? porque este pasa si o si por todos los elementos y nosotros no siempre necesitaremos todos los elementos del array o coleccion, y en esos casos estableceremos otro limite, tambien puede suceder que sea mas facil omitir varias posiciones con el bucle anterior a este tipo de bucle pero si nosotros necesitamos recuperar si o si todos los elementos contenidos la mejor opcion es esta, como digo siempre queda a criterio del programador.
En resumen, hoy hemos visto el for mejorado, como es, como trabaja, para que nos sirve, que tarea nos facilita, como podemos sacar mas provecho, como nos ahorra algunos pasos o tener que recolectar mas informacion, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
