Un array en PHP es en realidad un mapa ordenado. Un mapa es un tipo de datos que asocia valores con claves.

[
   clave1 => valor1,
   clave2 => valor2,
   clave3 => valor3,
    ...
]
  1. La clave puede ser un integer o un string.
  2. El valor puede ser de cualquier tipo.

Un array puede ser creado con el constructor array().

$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

A partir de PHP 5.4 también se puede usar la sintaxis de array corta, la cual reemplaza array() con [].

$array = [
    "foo" => "bar",
    "bar" => "foo",
];

Amoldamiento de tipo

  1. Si la clave es un string que contiene un decimal válido, está será amoldada a integer; por ejemplo, si la clave es "8", en realidad se almacenará como 8.

  2. Una clave float también es amoldada a integer; por ejemplo, si la clave es 1.5, se almacena 1.

  3. Una clave boolean también es amoldada a integer; por ejemplo, si la clave es false, se almacena 0.

  4. Si la clave es null será amoldada a un string vacío; es decir, "".

Asociativos

Los arrays asociativos son arrays cuyos keys son strings personalizados.

Acceso y Modificación de elementos

Si la variable $arr contiene un array, se pueden acceder a sus elementos utilizando la sintaxis `$arr[clave]`.

Para modificar un array, se puede establecer explícitamente valores en él, tilizando la sintaxis $arr[clave] = valor;.

$arr = array(5 => 1, 12 => 2); // Declaración de un array
$arr[5] = 5;    // Esto cambia el valor del elemento
$arr["x"] = 42; // Esto agrega un nuevo elemento
$arr[] = 56;    // Esto es lo mismo que $arr[13] = 56; ¡CUIDADO!
  1. Los arrays de PHP pueden contener claves integer y string al mismo tiempo ya que PHP no distingue entre arrays indexados y asociativos.
  2. ¡CUIDADO!, no recomiendo omitir la clave. Si no se especifica una clave, se toma el máximo de los índices integer existentes, y la nueva clave será ese valor máximo más 1. Pero, tenga en cuenta que la clave integer máxima utilizada, no es necesariamente aquella que actualmente exista en el array, si no la que existio en algún momento desde la última vez que el array fué re-indexado.

Para quitar una pareja clave/valor, se debe llamar a la función unset() con éste.

unset($arr[5]); // Esto elimina el elemento del array
unset($arr);    // Esto elimina el array completo