¿Qué son los arrays en PHP?

Resumen.

Este capitulo lo vamos a dedicar en exclusiva a un tipo de variable muy importante, la variable tipo array. La particularidad de esta variable es que en lugar de contener un valor, contiene un conjunto de valores que podemos manipular de diferentes formas. Se trata de un tipo de variable poco comprendida pero no por ello de menor importancia, todo lo contrario.

Artículo.

En el capitulo anterior hablamos de las variables, y mencionamos el array que, a fin de cuentas, es un tipo más de variable. Pero entender qué es un array puede no ser tan sencillo aunque el concepto es elemental.

Hay por ahí muchas definiciones de array, pero he de decir que en su momento me costó entender qué era y, sobre todo, para qué servía, qué ventajas obtenía con su uso.

Como ya hice en el capítulo anterior con las variables, a las que ahora me referiré como variables simples, me sacaré una nueva definición de variable array de mi bolsillo.

Si las variables simples contienen un solo valor, las variables tipo array contienen un conjunto de valores relacionados de alguna manera. Pero no solo eso, también permite el acceso individual a cada uno de esos elementos y su manipulación.


Vayamos a por un ejemplo de variable array.


<?php
$calificaciones = array(6, 8, 5, 4, 6, 7, 7, 9, 3, 4);

echo '<pre>';
print_r($calificaciones);
echo '</pre>';
?>


Las variables array se nombran como cualquier otra variable pero se definen de manera un poco diferente. El caso del array presentado es el más simple. Para definir una variable tipo array solo es preciso agregar array() y entre los paréntesis los elementos que contiene el array separados por comas (,).

Para ver el contenido del array de una forma clara y ordenada, me gusta usar echo y print_r con las etiquetas HTML de preformato, esto es un hábito, una costumbre particular propia, cada cual usará la que mas le convenga y guste.

Si ejecutas ese código verás algo así:


Array
(
[0] => 6
[1] => 8
[2] => 5
[3] => 4
[4] => 6
[5] => 7
[6] => 7
[7] => 9
[8] => 3
[9] => 4
)


Se puede apreciar que aparecen un conjunto de valores, columna de la izquierda. Ese conjunto de valores se han generado de manera automática, dado que no los hemos definido en el array, esos valores son las claves / índices / keys del array. A través de estas keys o claves podemos acceder a cada uno de los elementos del array de manera individual.

Con este código


<?php
$calificaciones = array(6, 8, 5, 4, 6, 7, 7, 9, 3, 4);
// Extraemos la calificación mas alta
echo "$calificaciones[7]";
?>


Y bueno, ¿esto es todo? Pues no, para nada, hemos elegido el array más simple para facilitar su comprensión. Este array es pequeño, solo contiene 10 valores, pero un array puede contener cientos, miles, cientos de miles e incluso millones de valores. Y para manejar arrays PHP tiene multitud de funciones, muchísimas. Por ejemplo, para obtener el valor más alto, como hemos hecho a ojo antes, existe la función max($calificaciones).

Pero eso no es todo, podemos por ejemplo, calcular la nota media, veamos cómo:


<?php
$calificaciones = array(6, 8, 5, 4, 6, 7, 7, 9, 3, 4);
// Sumamos todos los elementos del array
$suma = array_sum($calificaciones);
// Contamos los elementos del array
$n_alumnos = count($calificaciones);
// Calculamos la nota media
$media = $suma / $n_alumnos;
// Obtenemos el valor mas alto
$mayor = max($calificaciones);
echo "Media: $media <br />
Mayor valor: $mayor";
?>


Como puede verse, la potencia que ofrecen los array va mucho más allá de la que ofrece una variable simple. Pero es que además podemos convertir un array en una variable simple con la función implode('separador', $calificaciones).


<?php
$calificaciones = array(6, 8, 5, 4, 6, 7, 7, 9, 3, 4);
// Convertimos un array en una cadena
$linea_texto = implode('|', $calificaciones);

echo $linea_texto;
?>


También podemos convertir una cadena en un array con la función explode('separador', $calificaciones);


<?php
$calificaciones = '6, 8, 5, 4, 6, 7, 7, 9, 3, 4';
// Convertimos una cadena en un array
$array_calificaciones = explode(',', $calificaciones);

echo '<pre>';
print_r($array_calificaciones);
echo '</pre>';
?>


Por supuesto, y como cabe esperar, también podemos ordenar los elementos de un array.


<?php
$calificaciones = array(6, 8, 5, 4, 6, 7, 7, 9, 3, 4);
// Ordenamos el array en sentido ascendente
asort($calificaciones);

echo '<pre>';
print_r($calificaciones);
echo '</pre>';
?>


El abanico de funciones que encontramos en PHP para manejar los arrays es descomunal, no hay más que consultar la página oficial.

Hasta aquí he preferido hacer referencia solo a los array tipo numérico, pero también podemos almacenar en un array datos no numéricos. Veamos el siguiente array donde además tenemos definida la clave, indice o key.


<?php
$profesiones = array('Antonio' => 'Programador', 'Marcos' => 'Economista', 'Emma' => 'Abogada', 'Venus' => 'Tenista');

echo '<pre>';
print_r($profesiones);
echo '</pre>';
?>


En este caso tenemos un array no numérico donde la clave o key es el nombre y el valor es la profesión.

Ni qué decir tiene que podríamos decir mucho mas sobre los arrays, pero aquí solo pretendemos introducirnos en su conocimiento, su lógica de uso. En el siguiente artículo veremos que al igual que con las variables simples se pueden hacer ciertas cosas, como contar el número de caracteres, con los arrays se puede hacer lo mismo, pero se agrega una complicación, que los cambios hay que realizarlos sobre cada elemento del array, los que nos lleva a los temidos bucles.
Tags: array || conjunto || key || max || array_sum || count || implode || explode

Comentarios.

Sin comentarios, publica el tuyo.