curso php: principiante

Fundamentos prácticos y teóricos de php5

capítulo 1.1.1: Instalación en windows
capítulo 1.1.2: instalación en ubuntu
capítulo 2.2: tipos de variables
capítulo 3.1: uso de IF
capítulo 3.2: Uso de for
capítulo 3.3: Uso de Switch
capítulo 3.4: Uso de While
capítulo 3.5: Uso de Do ... While
capítulo 3.6: Uso de foreach

Arrays: concepto, operaciones y manipulación - Curso de php: principiante

Tal y como se explicó en el capítulo anterior, cuando explicábamos el uso de foreach, un array, es como un cesto, en el que guardamos gran variedad de cosas. Imaginemos las variables:


<?php
$edad = 24;
$nombre = "pepe";
?>

Hasta ahora, guardabamos la información utilizando estas dos variables, pero si lo que nos interesa es tener ambos datos juntos, la solución son los arrays. Pero ¿por qué ibamos a querer tener los datos juntos? bien, imaginemos que lo que estamos guardando es una variable llamada:


<?php
$empleados;
?>

En el cual queremos introducir, el nombre y la edad, de todos los empleados de una empresa. Esta sería una aplicación práctica del funcionamiento de un array, pero también es cierto, que es un tipo de array más elaborado, por lo que vamos a empezar con ejemplos más sencillos, lo que se denominan arrays unidimensionales, los cuales tienen la siguiente estructura:


<?php
$alumnos[] = "pepe";
$alumnos[] = "manuel";
$alumnos[] = "fernando";
?>

Un array, se reconoce porque tiene la estructura de una variable, terminada en corchetes, como se ve en el ejemplo anterior. Lo que realmente hemos hecho en el ejemplo anterior ha sido esto:


<?php
$alumnos[0] = "pepe";
$alumnos[1] = "manuel";
$alumnos[2] = "fernando";
?>

Dentro de los corchetes, debemos indicar el orden (aunque ya veremos despúes, que se puede añadir cadenas de texto), lo que pasa que al dejarlo en blanco, PHP, los ordena automáticamente, asignando siempre el 0 al primer elemento.


<?php
print $alumnos[0]."<br />";
print $alumnos[1]."<br />";
print $alumnos[2]."<br />";
?>
//Obtendríamos
pepe
manuel
fernando

Por otro lado, si intentáramos ejecutar el siguiente código:


<?php
print $alumnos[];
?>
//El resultado sería:
Array

PHP nos advertiría que estamos intentando imprimir un array, y la función print no puede hacerlo, por lo que tendríamos que recurrir a la función: print_r, que está diseñada para imprimir arrays:


<?php
print_r($alumnos);
?>
//El resultado sería:
Array ( [0] => pepe [1] => manuel [2] => fernando )

 Como se puede ver, la estructura de print_r es la siguiente:


print_r($array);

Es decir, requiere que el array esté contenido entre paréntesis, y no requiere de los corchetes. Espliquemos ahora, los arrays que en vez del número de orden, contienen cadenas de texto entre los corchetes:


<?php
$alumnos["pepe"] = 22;
$alumnos["manuel"] = 21;
$alumnos["alberto"] = 20;
?> 

Hemos asignado el nombre del alumno dentro del corchete y la edad como valor. Este sería un ejemplo bastante claro de como utilizar cadenas de texto en vez de números.


Veamos un ejemplo de array bidimensional, y descubramos como podemos utilizar todo lo que sabemos hasta ahora sobre arrays:


<?php
$alumnos["clase1"][0] = "pepe";
$alumnos["clase1"][1] = "manuel";
$alumnos["clase1"][2] = "fernando";
?>

Suponemos que ahora queremos clasificar a los alumnos, para ello podemos utilizar un FOREACH para recorrer nuestro array y obtener los valores (y ya de paso seguimos adentrándonos en el uso de FOREACH):


<?php
$alumnos["pepe"] = 22;
$alumnos["manuel"] = 21;
$alumnos["alberto"] = 20;

foreach ($alumnos as $nombre => $edad){
   print "Nombre: ". $nombre . " - Edad: ". $edad."<br />";
}
?>

El resultado sería:


Nombre: pepe - Edad: 22
Nombre: manuel - Edad: 21
Nombre: alberto - Edad: 20

Pasemos ya por último, a los arrays multidimensionales. Lo mejor para entenderlo, es ver un ejemplo:


<?php
$alumnos = array("pepe" => array("edad" => 22, "altura" => 180),
"alberto" => array("edad" => 20, "altura" => 170));
?>

Lo que hemos hecho ha sido crear una estructura de este tipo:


 Alumnos:
 -> Pepe
      -> Edad -> 22
      -> Altura -> 180
 -> Alberto
      -> Edad -> 20
      -> Altura -> 170 

Estos últimos arrays son algo más complicados de entender, pero nos permiten almacenar una gran cantidad de información, en un solo lugar, y sobre todo, y lo más importante, totalmente ordenada y gerarquizada, lo que nos permite poder leer o modificar cualquier dato. Su estrucutra básica es:


$variable = array();

Y ampliada:


$variable = array("campo" => valor);

Que no se olvide, que si el valor fuera una cadena, debería ir entre comillas. En este caso se ha puesto sin ellas, porque se ha asumido que es numérico, del mismo modo que si el campo fuera numérico iría sin ella, veamos como quedaría:


$variable = array(campo => "valor");