• Home »
  • PHP »
  • PHP (02) Cadenas y matrices (05) Manejo de matrices con ciclos

PHP (02) Cadenas y matrices (05) Manejo de matrices con ciclos

El manejo de las matrices y lo ciclos o bucles, son algo realmente natural, ya que los van recorriendo elemento a elemento, haciendo que funcionen de manera rápida y sencilla, para ello veremos a continuación como se hace un recorrido por una matriz de las diferentes formas…

Si tienes alguna duda sobre como se utilizan los bucles te aconsejo que revises las entradas que hablan de ellos en este mismo curso.

Ciclo for

Una función muy util que se puede utilizar en los bucles for es la función count(), esta función devuelve el numero de elementos que tiene una matriz y este numero se puede utilizar para tomarlo como valor limite del contador del for tal y como vemos en el ejemplo:
<html>
<head>
</head>
<body>

<?php
 $escritores = array (0=> "Unamuno", 1=> "Cervantes", 2=> "Machado", 3=> "Becquer");

 for ($i=0; $i< count($escritores); $i++){
  echo "<p>escritor " . $i . " = " . $escritores[$i] . "</p>";
 }
?>
</body>
</html>
Como puedes observar, hemos declarado un array y luego lo hemos recorrido con un for, donde hemos puesto la condición de $i sea menor al numero de elementos del arrayBásicamente eso es todo de momento con el ciclo for… es muy muy sencillo, y en verdad es el que a mi más me gusta…

Ciclo foreach

Este ciclo es otro de los más importantes, aunque es muy parecido al ciclo for, se caracteriza por que no trabaja con contadores, sino con colecciones, por lo que no pone condiciones de comienzo ni final.

De hecho se puede utilizar para arrays unidimensionales o bidimensionales de forma muy sencilla.

Índices númericos

<html>
<head>
</head>
<body>

<?php
 $escritores = array (0=> "Unamuno", 1=> "Cervantes", 2=> "Machado", 3=> "Becquer");

 foreach ($escritores as $valor) {
  echo "<p>Escritor: " . $valor . "</p>";
 }
?>
</body>
</html>

Puedes observar que convierte el elemento que va tocando en la variables $valor que es con la cual podemos trabajar y mostrar en pantalla.

Índices asociativos

Cuando un array es bidimensional es muy fácil de recorrer con el foreach sin necesidad de recurrir a dobles for, solamente hay que hacer lo siguiente:
<html>
<head>
</head>
<body>

<?php
 $notas = array ("Jose"=>7.4, "Maria"=>4.2, "Lourdes"=>8.0, "Antonio"=>5.6);

 foreach ($notas as $nombre => $valor) {
  echo "<p>" . $nombre . " = " . $valor . "</p>";
 }
?>
</body>
</html>
Se puede observar que tras declarar el array bidimensional $notas, en el foreach se recoje el primer valor del elemento o índice como la variable nombre y que a este se le asigna una variable $valor, que es el valor que tiene el array en el índice que va recorriendo.
Tras esto solo hace falta trabajar con nuestras dos variables $nombre y $valor.

Ciclo while

Incluso se puede utilizar un ciclo while para recorrer un array, aunque esta forma es menos usada, puede tener su utilidad para ello se hace de la siguiente forma:
<html>
<head>
</head>
<body>

<?php
 $notas = array ("Jose"=>7.4, "Maria"=>4.2, "Lourdes"=>8.0, "Antonio"=>5.6);

 while (list($nombre, $valor) = each($notas)) {
  echo "<p>" . $nombre . " = " . $valor . "</p>";
 }
?>
</body>
</html>
Si observamos el while, vemos que la condición es que tome las variables $nombre y $valor de cada ciclo que hace por el array $notas y después de tomarlas podemos trabajar con ellas durante todo el ciclo.