Anuncios

Bienvenidos sean a este post, hoy veremos una variante del bucle for.

Anuncios

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 ...
}
Anuncios

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";
}

?>
Anuncios
Anuncios

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$
Anuncios

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";

?>
Anuncios

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";

?>
Anuncios

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.

Anuncios

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.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50