Anuncios

Bienvenidos sean a este post, hoy veremos uno de los ciclos mas universales en todo lenguaje.

Anuncios

El ciclo for es un bucle que nos permite repetir una serie de instrucciones las veces que necesitemos a traves de una simple condicion, veamos su sintaxis:

for(variable contador; condicion; modificacion contador)
{
    ... instrucciones ...
}
Anuncios
Anuncios

El primer campo que denominamos variable contador sera para definir una variable con un valor inicial que usaremos para contar por cada pasada del bucle, el siguiente campo sera la condicion para determinar el final del bucle y el ultimo campo sera el que modifique la variable que creamos en el primer campo, este usualmente es un incrementador pero tambien puede ser decrementador para hacer una cuenta regresiva, por ejemplo, podemos modificarlo por medio de un solo valor o saltando varios, por lo general se hace de uno pero siempre debemos ajustarnos a nuestra necesidad, para entender este concepto vamos a tomar el codigo del archivo explode.php que vimos en este post:

explode.php

<?php

$texto = "Este es un texto de prueba";
$miArray = explode(" ", $texto);

echo $miArray[0] . "\n";
echo $miArray[1] . "\n";
echo $miArray[2] . "\n";
echo $miArray[3] . "\n";
echo $miArray[4] . "\n";
echo $miArray[5] . "\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);

for($i = 0; $i < count($miArray); $i++)
{
	echo $miArray[$i] . "\n";
}

$miTexto = implode("_", $miArray);

echo $miTexto . "\n";

?>
Anuncios
Anuncios

Si vemos los dos codigos la unica modificacion entre uno y otro es el bloque donde mostramos todos los datos del array generado con el explode con un for donde primero iniciaremos una variable llamada i que usaremos para contar las vueltas, luego tenemos una condicion donde le decimos que lo haga mientras i sea menor al valor obtenido de contar los elementos del array por medio de count, por ultimo incrementaremos a i en uno por cada vuelta, dentro del bloque del bucle usaremos la misma linea que antes para mostrar el valor pero en lugar de pasar el numero de posicion iremos pasando el valor de i en esa vuelta, con esto debemos obtener un resultado similar a lo visto en ese post, probemos ejecutando el codigo para ver su salida:

tinchicus@dbn001vrt:~/lenguajes/PHP$ php explode.php 
Este
es
un
texto
de
prueba
Este_es_un_texto_de_prueba
tinchicus@dbn001vrt:~/lenguajes/PHP$
Anuncios

Como pueden ver nos puede facilitar mucho las tareas y reducir considerablemente nuestro codigo sin la necesidad de repetir codigo, los bucles for al igual que los condicionales tambien pueden ser anidados, es decir que dentro de un bucle podemos usar otro bucle, para este caso vamos a tomar el ejemplo de array multidimensional llamado multi.php que vimos en este post:

multi.php

<?php

$alumnos = array(
	array('tinchicus',44,'Martin','Miranda'),
	array('etortore',33,'Enzo','Tortore'),
	array('dalemn',32,'DarkZero','Aleman'),
	array('polizzia',47,'Ariel','Polizzi'));

echo $alumnos [0][1] . "\n";
echo $alumnos [1][0] . "\n";
echo $alumnos [2][3] . "\n";
echo $alumnos [3][2] . "\n";

?>
Anuncios

Y lo modificaremos de la siguiente manera:

<?php

$alumnos = array(
	array('tinchicus',44,'Martin','Miranda'),
	array('etortore',33,'Enzo','Tortore'),
	array('daleman',32,'DarkZero','Aleman'),
	array('polizzia',47,'Ariel','Polizzi'));

for($i = 0; $i < count($alumnos); $i++)
{
	for($j = 0; $j < 4; $j++)
	{
		echo $alumnos[$i][$j] . "\t";
	}
	echo "\n";
}

?>
Anuncios
Anuncios

Mantenemos el mismo array bidimensional con toda la informacion contenida de cada alumno, quitamos el bloque que mostraba algunos datos y lo reemplazamos con un bucle for donde haremos bucle en base a lo devuelto por el count del array, este bucle sera para la posicion de la primera dimension es decir que la usaremos para posicionarnos en cada fila, en el cuerpo del bucle tenemos otro bucle pero que contara hasta cuatro, este lo usaremos para la segunda dimension y para ello usaremos otra variable para diferenciarlo del anterior, es decir que este bucle sera el que pase por todas las columnas, dentro de este bucle mostraremos los datos del array, para ello primero informaremos el valor de i, para la primera dimension, seguido del valor de j, la segunda dimension, y por cada pasada usaremos el modificador para emular una tabulacion, una vez terminado el bucle usaremos al modificador de nueva linea, y despues de esto seguiremos con el nuevo bucle, para repetir el segundo bucle pero con la nueva linea, ejecutemos y veamos su salida:

tinchicus@dbn001vrt:~/lenguajes/PHP$ php multi.php 
tinchicus	44	Martin	Miranda	
etortore	33	Enzo	Tortore	
daleman	32	DarkZero	Aleman	
polizzia	47	Ariel	Polizzi	
tinchicus@dbn001vrt:~/lenguajes/PHP$
Anuncios

Como pueden ver de una manera mas practica pudimos obtener todos los datos contenidos en el mismo, por medio de dos bucles que nos facilitaron la tarea, recuerden que pueden anidar todos los bucles que sean necesarios.

Anuncios

En resumen, hoy hemos visto a for, como es, para que nos sirve, cual es su uso principal, como nos ayuda a trabajar de una manera mas practica con los arrays, inclusive los multidimensionales, 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
pp258

Donación

Es para mantenimento del sitio, gracias!

$1.50