Creación de un Array

Un array puede ser creado con el constructor del lenguaje array(). Éste toma cualquier número de parejas clave => valor como argumentos.

array(
    clave1 => valor1,
    clave2 => valor2,
    clave3 => valor3, ...
);

También, a partir de PHP 5.4, es posible realizar la siguiente notación:

[
    clave1 => valor1, 
    clave2 => valor2, ...
]

Las clave solamente pueden ser del tipo entero o string. En todo si se utiliza otro tipo las consideraciones serán las siguientes:

Indexación

Recorrido de un array

Es posible utilizar las construcciones usuales como el for o while para recorrer un array, sin embargo, se recomienda el foreach, debido a las características de los array en PHP.

$arreglo = array(               
    'nombre' => 'Jose',
    'identidad' => '0801199000123',
    'nacimiento' => 'Tegucigalpa'
);

// Iteración de un array
foreach($arreglo as $clave => $valor) {
    echo $clave, ': ', $valor, PHP_EOL;
}

Agregar elementos

Para agregar un elemento a un array se puede hacer uso de la función:

Función array_push

Insertará en la última posición uno o varios elementos.

$abecedario = ['a', 'b', 'c'];
array_push($abecedario, 'd', 'e', 'f');

Construcción []

También puede utilizarse la construcción $array[], la cual agrega un índice numérico. Posee dos ventajas con respecto a la función array_push().

  1. En caso de que no existe el array lo crea.
  2. Es más óptimo.
$arreglo = ['a' => 1, 'b' => 2, 'c' => 3];

// Agregar un elemento: clave = 0, valor = 4
$arreglo[] = 4;

// Agregar un elemento: clave = 'd', valor = 5
$arreglo['d'] = 5;

Función array_unshift

Se pueden agregar uno o varios elementos al inicio de un array.

$ordinales = ['tercero', 'cuarto', 'quinto'];

//Agrega elementos al inicio de un array: array_unshift
array_unshift($ordinales, 'primero', 'segundo');

Eliminar elementos

Para eliminar un elemento del array se puede usar las siguientes funciones:

Función unset

Elimina el elemento del array seleccionado, deja intactas las claves que no se han eliminado.

$arreglo = [10, 20, 30, 40, 50, 60, 70];

// Elimina el elemento con clave 2, valor = 30
unset($arreglo[2]);

Función array_shift

Extrae el elemento inicial del array, restableciendo las claves numéricas.

$arreglo = [10, 20, 30, 40, 50, 60, 70];

// Elimina al primer elemento, clave = 0 y valor = 10
array_shift($arreglo);

Función array_pop

Extrae el elemento final del array.

$arreglo = [10, 20, 30, 40, 50, 60, 70];

// Elimina el último elemento, clave = 6 y valor = 70
array_pop($arreglo);

Modificar un elemento

Las claves en un array son únicas, esto indica que si agrega un nuevo elemento con una clave existente lo que se logra es la sobrescritura. Para hacer esto se selecciona la clave y el nuevo valor a modificar el array.

$arreglo = ['a' => 1, 'b' => 2, 'c' => 3];

// Modificación del elemento con clave 'a'
$arreglo['a'] = 100;

Modificaciones de array (sin recorrido)

PHP tiene un catálogo de funciones que permiten modificar u obtener resultados de los elementos que conforman un array, a partir de funciones ya establecidas que evitan el recorrido de cada elemento.

array_sum

Para obtener la sumatoria de los valores numéricos de un arreglo.

$numeros = [1, 2, 3, 4, 5];

// Imprime 15
array_sum($numeros);

array_product

Se obtiene el producto de los valores numéricos de un arreglo.

$numeros = [1, 2, 3, 4, 5];

// Imprime 120
array_product($numeros);

array_map

Permite obtener un nuevo arreglo a partir de una transformación del arreglo original.

function cubo($numero) {
    return pow($numero, 3);
}

$numeros = [1, 2, 3, 4, 5];

// Obtener el cubo de cada elemento del arreglo
$cubos = array_map('cubo', $numeros);

print_r($cubos);

Otra forma alternativa es utilizando funciones anónimas.

$numeros = [1, 2, 3, 4, 5];

// Obtener el cubo de cada elemento del arreglo
$cubos = array_map(
    function ($numero) { 
        return pow($numero, 3); 
    }, $numeros
);

print_r($cubos);

array_filter

Se obtiene un array a partir de una función que permite el filtrado de cada elemento del array original.

function esPar($numero)
{
    return ($numero % 2 == 0);
}

$numeros = [1, 2, 3, 4, 5];

// Llamado a una función que filtra elementos de un array 
$pares = array_filter($numeros, 'esPar');

print_r($pares);

array_reduce

Permite obtener un valor escalar resultante de una función previa. Esta función debe establecerse de la siguiente manera:

function callback($carry, $item) { ... }

En este caso el primer argumento ($carry) de la función es un acumulador, mientras que el segundo ($item) es el valor del elemento en cada iteración.

$numeros = [1, 2, 3, 4, 5];

$sumatoriaPares = array_reduce($numeros, 
    function($total, $item) { 
        if ($item % 2 == 0)
            $total += $item; 
        return $total; 
    }
);

var_dump($sumatoriaPares);

Otras funciones

https://gist.github.com/senquevila/b972f476479f4e14dc08e9f8c8cdc6e8

Documentación

Arreglos en PHP