Ver índice
Array escalar y asociativo

        Ocultar índice  

   Índice de contenidos
   Instalación en Windows
   Instalación en Ubuntu
   Servidores seguros
   Páginas dinámicas
   Sintaxis básica
   Operaciones
   Arrays
   Formatos de presentación
   Operadores
   Bucles
   Extraer y ord. información
   Funciones
   Ficheros externos
   Imágenes dinámicas
   Gestión de directorios
   Cookies y sesiones
   Clases y objetos
   Ficheros en formato PDF
   Bases de datos MySQL
   PHP y XML
   PDO - Bases SQLite / MySQL
   MySQL a traves de misqli
   Algo de JavaScript y AJAX


¿Qué es un array?

Un array es algo tan simple una tabla de valores. Cada uno de los elementos de esa tabla se identifica por medio de un nombre (común para todos) y un índice (que sería el elemento diferenciador de cada uno de ellos).

Mediante el uso de arrays podemos utilizar el mismo nombre para varias variables diferenciándolas por medio de sus índices. La sintaxis que permite definir elementos en un array es esta:

$nombre[indice]

dónde $nombre utiliza exactamente la misma sintaxis empleada para definir variables, con la única particularidad de que ahora deben añadírsele los corchetes y los índices. El índice puede ser un número (habría que escribirlo dentro del corchete sin comillas), una cadena (que habría que poner en el corchete encerrada entre comillas sencillas'–), o una variable que tampoco necesitaría ir entre comillas.

Cuando los índices de un array son números se dice que es escalar mientras que si fueran cadenas se le llamaría array asociativo.

Tablas unidimensionales
Array escalar Array asociativo
VariableIndiceValor VariableIndiceValor
$a[0]0Domingo  $a['Primero']PrimeroDomingo
$a[1]1Lunes  $a['Segundo']SegundoLunes
$a[2]2Martes  $a['Tercero']TerceroMartes
$a[3]3Miércoles  $a['Cuarto']CuartoMiércoles
$a[4]4Jueves  $a['Quinto']QuintoJueves
$a[5]5Viernes  $a['Sexto']SextoViernes
$a[6]6Sábado  $a['Septimo']SeptimoSábado

Arrays escalares

Los elementos de un array escalar puede escribirse con una de estas sintaxis:

$a[]=valor
ó
$a[xx]=valor
ó
$a=array(valor0, valor1, valor2,...)

En el primero de los casos PHP asigna los índices de forma automática atribuyendo a cada elemento el valor entero siguiente al último asignado. Si es el primero que se define le pondrá índice 0 (CERO).

En el segundo de los casos, seremos nosotros quienes pongamos (xx) el número correspondiente al valor del índice. Si ya existiera un elemento con ese índice, se cambiaría el valor de su contenido, en caso contrario creará un nuevo elemento del array y se le asignaría como valor lo especificado detrás del signo igual que –de la misma forma que ocurría con las variables– debería ir entre comillas si fuera una cadena o sin ellas si se tratara de un número.

En el tercero de los supuestos, la palabra array que precede al paréntesis indica que cada uno de los valores –numéricos o cadenas– separados por comas e incluidos dentro del paréntesis son los valores correspondientes a los elementos de índices 0, 1, 2... de un array escalar.

Arrays asociativos

Los elementos de un array asociativo (aquel cuyos índices no son números) pueden escribirse usando la siguiente sintaxis:

$a['indice']=valor

En este caso estamos obligados a escribir el nombre del índice que habrá de ser una cadena escrita entre comillas o también una variable definida previamente y con ese tipo de contenido.

Tanto en el caso de los array asociativos como en los escalares es posible –y bastante frecuente– utilizar como índice el contenido de una variable. El modo de hacerlo sería este

$a[$indice]=valor

En este caso, sea cual fuere el valor de la variable $indice, el nombre de la variable nunca se pone entre comillas.

Ejemplo de arrays unidimensionales

<?php
# Crearemos un array escalar (basta con definir un elemento)
$a[2]="Este elemento es el segundo del array";
# creemos un nuevo elemento de ese array
# esta vez de forma automática
# si ponemos corchetes vacíos va añadiendo índices automaticamente
$a[]="¿Será este tercero?";
# comprobemos que le ha puesto índice 3
echo "El elemento ".$a[3]." tiene indice 3 (siguiente a 2) <br>";
# ahora insertemos un nuevo elemento con indice 32
$a[32]="Mi indice es 32";
# insertemos otro elemento de forma automática
$a[]= "¿Irá a parar al indice 33 este elemento?";
#  la inserción se hará con indice 33, comprobémoslo
print "Vemos que contiene el elemento de indice 33 ...".$a[33]."<br>";
# ¿qué ocurrirá si pido que imprima el elemento 21 que nadie ha definido
# seguramente estará vacio, ¡¡comprobémoslo!!
# antepondremos el @ para evitar el mensaje de advertencia de PHP
@print ("Aqui--> ". $a[21]. "<--- si es que hay algo<br>");
# ahora crearemos un nuevo array llamado $b
# insertémosle de forma automatica su PRIMER elemento
$b[]="Estoy empezando con el array b y mi indice será cero";
# comprobemos que efectivamente ha empezado con indice CERO
print ($b[0]."<br>");
# veamos ahora eso de los arrays asociativos
# creemos uno llamado $c con varios elementos
$c["objeto"]="coche";
$c["color"]="rojo";
$c["tamaño"]="ideal";
$c["marca"]= "Ferrari";
$c["precio"]="prohibitivo para un humilde docente";
#encadenemos variables para hacer una salida
# pondremos cadenas " " para que no aparezcan los textos
# pegados unos a otros..
$salida="<H2> El ". $c["objeto"] ." ".$c["marca"]." ".$c["color"];
$salida .=" tiene el tamaño ideal ".$c["tamaño"];
$salida .=" y su precio es ".$c["precio"];
$salida .="</H2>";
print $salida;
# sigamos experimentando ahora
# ¿qué ocurriría si nos olvidamos de poner nombre al indice
# e insertamos un corchete vacio ¿lo crearía?¿que indice pondria?
# probemos ....
$c[]="¿creará un array escalar nuevo y le pondrá indice cero?";
# tratemos ahora de visualizar esa variable
# probemos a escribir $c[0] porque PHP
# habrá entendido que queremos un array escalar
# y como no existe ninguno con ese nombre empezará por cero
# comprobémoslo
echo $c[0];
?>
ejemplo36.php