Matrices o Arrays de índice numérico
Un array es sencillamente una tabla de valores. Imaginemos que queremos guardar en variables el número de películas que hemos visto cada mes. Con las variables podríamos hacerlo así:
$peliculas_enero = 9;
$peliculas_febrero = 21;
$peliculas_marzo = 12;
En otra parte del código utilizaríamos estas instrucciones para mostrar dichos valores:
echo <<<PELICULAS
Películas vistas: <br/>
- en enero: $peliculas_enero.<br/>
- en febrero: $peliculas_febrero.<br/>
- en marzo: $peliculas_marzo.<br/>
PELICULAS;
Las matrices nos permiten tener esa información mucho más organizada pudiendo acceder a través de una sola variable y utilizando un índice como modificador.
La siguiente es una de las posibles formas de declarar una matriz para la variable $peliculas:
$peliculas = array(9, 21, 12);
El valor 9 tiene índice 0, 2l valor 21 tiene de índice 1, y el valor 12 está en el índice 2. Es lo que llamamos un array escalar. Si añadimos otro valor a este array automáticamente se insertará en el índice siguiente que será el 3.
Hemos creado una matriz con 3 elementos. Para acceder a estos elementos sólo necesitamos indicar el índice de cada elemento entre [ ] .
echo <<<PELICULAS
Películas vistas: <br/>
- en enero: $peliculas[0] .<br/>
- En febrero: $peliculas[1]. <br/>
- En marzo: $peliculas[2].<br/>
PELICULAS;
El índice podrá ser un número (se escribirá entre los corchetes y sin comillas), una cadena (Entre corchetes y entre comillas o una variable (Entre corchetes y sin comillas).
Vamos a verlo todo esto ahora realizado con php
Películas vistas:Añadimos un nuevo elemento a la matriz
$peliculas [] = 17;
Películas vistas:
- En enero: 9.
- En febrero: 12.
- En marzo: 21.
- En abril: 17.
Podemos ver la estructura de la matriz con la función print_r($peliculas);
Esto es lo que veremos con la función print_r($peliculas)
Array ( [0] => 9 [1] => 12 [2] => 21 [3] => 17 )
Otra forma de declarar el array es dar nombres a los índices 0, 1, 2, 3 ... Es lo que llamamos un Array asociativo. Para ello utilizaremos la función array.
$a= array (
índice 0 => valor,
..... ,
índice n => valor,
);
Aplicamos la función al ejemplo de las películas:
<?php
$peliculas = array(
'enero' => 9,
'febrero' => 12,
'marzo' => 21,
'abril' => 17
);
print_r($peliculas);
?>
Se verá de la siguiente forma:
Array ( [enero] => 9 [febrero] => 12 [marzo] => 21 [abril] => 17 )
Esta es otra forma de definir el array utilizando corchete para el índice y el valor entre comillas. El índice podrá ser una cadena o una variable.
$c ["objeto"] = "coche";
$c ["color"] = "rojo";
$c ["tamaño"] = "ideal";
$c ["marca"] = "Ferrari";
$c ["precio"] ="prohibitivo para un humilde docente";
Construimos un Array bidimensional
Resultados de una liga de fútbol con 5 equipos. Construimos un array escalar porque los equipos van a estar identificados por un número de 0 a 4.
<?php
/* Rellenamos el array desde [0][0] hasta [0][4] */
$a[][] = " ";
/* Ahora ponemos 0 como primer índice del array y dejamos que PHP vaya automáticamente colocando el segundo*/
$a[0][] = " 3 - 2 "; $a[0][] = " 4 - 0 "; $a[0][] = " 0 - 0 "; $a[0][] = " 2 - 3 ";
/* Ahora desde [1][0] hasta [1][4]. El primero lo dejamos en automático en ambos índices, así tomará el siguiente dejado libre anteriormente. */
$a[][] = "0 - 11";
Y repetimos el proceso anterior.
$a [1][] = " "; $a [1][] = " 6 - 0 "; $a [1][] = " 2 - 2 "; $a [1][] = " 3 - 5 ";
/* Ahora con el índice 2.
$a[][] = "8 - 3 ";
$a [2][] = "4 - 1 "; $a [2][] = " "; $a [2][] = "0 - 1 "; $a [2][] = "2 - 2 ";
/* Con el índice 3.
$a[][] = "2 - 4 ";
$a [3][] = "4 - 1 "; $a [3][] = "1 - 0 "; $a [3][] = " "; $a [3][] = "2 - 2 ";
/* Y con el índice 4.
$a[][] = "0 - 11";
$a [4][] = "0 - 0 "; $a [4][] = "5 - 2 "; $a [4][] = "2 - 3 "; $a [4][] = " ";
?>
El proceso no tiene complicaciones, pero es más sencillo tener una base de datos de donde extraer los datos. Para ello primero necesitamos hacer una tabla. Utilizaremos un bucle.
<?php
print("<table border = 2>");
/* Dos bucles anidados, uno para rellenar las celdas y otro para las etiquetas <TR>
for ($i = 0; $i<=5; $i++)
{
print ("<tr>")
for ($j=0; $j<=5; $j++)
{
print ("<td>". $a[$i] [$j]. "</td>");
}
}
print ("</table>");
?>
| 3 - 2 | 4 - 0 | 0 - 0 | 2 - 3 | |
| 0 - 11 | 6 - 0 | 2 - 2 | 3 - 5 | |
| 8 - 3 | 4 - 1 | 0 - 1 | 2 - 2 | |
| 2 - 4 | 4 - 1 | 1 - 0 | 2 - 2 | |
| 0 - 11 | 0 - 0 | 5 - 2 | 2 - 3 |