Saltar la navegación

4.- Tipos de datos compuestos.

Caso práctico

Imagen de Carlos.Es muy raro el programa que utilice solo tipos simples, y más en PHP. Carlos ya ha asumido que tendrá que utilizar arrays para casi cualquier código que haga. La información del servidor, los datos que introduce el usuario, o las cadenas de texto. Gran parte de las variables que se usan en un programa están en forma de array.

Por tanto, el siguiente paso está claro: hay que dominar los arrays. Crearlos, utilizarlos, recorrerlos... Y como acaba de aprender, antes de ponerse a programar le echará un vistazo a las funciones que ya existen para manejarlos. Si las puede aprovechar en sus programas, ¡mejor!

Un tipo de datos compuesto es aquel que te permite almacenar más de un valor. En PHP puedes utilizar dos tipos de datos compuestos: el array y el objeto. Los objetos los veremos más adelante; vamos a empezar con los arrays.

Un array es un tipo de datos que nos permite almacenar varios valores. Cada miembro del array se almacena en una posición a la que se hace referencia utilizando un valor clave. Las claves pueden ser numéricas o asociativas.

// array numérico

$modulos1 = array(0 => "Programación", 1 => "Bases de datos", ..., 9 => "Desarrollo web en entorno servidor");

// array asociativo

$modulos2 = array("PR" => "Programación", "BD" => "Bases de datos", ..., "DWES" => "Desarrollo web en entorno servidor"); 

A partir de PHP 5.4 también se puede usar la sintaxis de array corta, la cual reemplaza array() con [ ]. El código anterior quedaría:

//array númerico

$modulos1=[0=>"Programacion", 1=>"Bases de Datos", ... ,2=>"Desarrollo web en entorno servidor"];

//array asociativo
$modulos2=["PR"=>"Programacion", "BD"=>"Bases de datos", ... , "DWES"=>"Desarrollo web en entorno servidor"];

Debes conocer

En PHP existen varias funciones para ver el contenido de un array sin tener que recorrerlo. Las más usadas son print_r($array) y var_dump($array). En realidad var_dump() tiene más usos que iremos viendo a lo largo del curso.

Para hacer referencia a los elementos almacenados en un array, tienes que utilizar el valor clave entre corchetes:

$modulos1 [9]

$modulos2 ["DWES"] 

Los arrays anteriores son vectores, esto es, arrays unidimensionales. En PHP puedes crear también arrays de varias dimensiones almacenando otro array en cada uno de los elementos de un array.

//array bidemensional

$ciclos = array(
    "DAW" => array ("PR" => "Programación", "BD" => "Bases de datos", "PMDMO"=>"Programacion Multimedia"),
    "DAM" => array ("PR" => "Programación", "BD" => "Bases de datos", "DWES"=>"Desarrollo web")
);

//En formato [ ]

$ciclos=[
    "DAW"=>["PR" => "Programación", "BD" => "Bases de datos", "PMDMO"=>"Programacion Multimedia"],
    "DAM"=>["PR"=>"Programacion", "BD"=>"Bases de datos", "DWES"=>"Desarrollo web"]
];

Para hacer referencia a los elementos almacenados en un array multidimensional, debes indicar las claves para cada una de las dimensiones: $ciclos ["DAW"] ["DWES"]

No es necesario que indiques el tamaño del array antes de crearlo. Ni siquiera es necesario indicar que una variable concreta es de tipo array. Simplemente puedes comenzar a asignarle valores:

// array numérico

$modulos1 [0] = "Programación";
$modulos1 [1] = "Bases de datos";

...

$modulos1 [9] = "Desarrollo web en entorno servidor";

// array asociativo

$modulos2 ["PR"] = "Programación";
$modulos2 ["BD"] = "Bases de datos";

...

$modulos2 ["DWES"] = "Desarrollo web en entorno servidor";

Ni siquiera es necesario que especifiques el valor de la clave. Si la omites, el array se irá llenando a partir de la última clave numérica existente, o de la posición 0 si no existe ninguna:

$modulos1[ ] = "Programación"; //asignará el índice 0
$modulos1[ ] = "Bases de datos"; //asignará el índice 1
$modulos1[7] = "Desarrollo web en entorno servidor";  //asignamos el índice 7
$modulos1[] = "Desarrollo Web"; //asignará el índice 8