Para empezar hablemos de qué es un arreglo:

El array, arreglo o matriz es una estructura que nos permite almacenar múltiples valores en una sola variable lo que es útil sobre todo cuando queremos utilizar elementos relacionados.

¿Cuántos tipos de array existen en PHP?

Al menos existen 3 tipos principales que son:

  • Arrays indexados
  • Arrays asociativos
  • Arrays multidimensionales

¿Qué son los arrays indexados y cómo se definen?

Los arrays indexados utilizan índices numéricos iniciando por 0 e incrementándose en 1 por cada elemento existente en el arreglo.

Definiendo y mostrando un elemento de un array indexado:

$frutas = array("manzana", "banana", "cereza");
// Otra forma de definir un array indexado
$frutas = ["manzana", "banana", "cereza"];
echo $frutas[0]; // Imprime: manzana
Lenguaje del código: PHP (php)

¿Qué son los arrays asociativos y cómo se definen?

Los arrays asociativos utilizan claves asociativas en lugar de índices numéricos, estas claves generalmente utilizan cadenas descriptivas que permiten acceder a los valores de una manera más descriptiva.

.Definiendo y mostrando un elemento de un array asociativo:

$persona = array(
    "nombre" => "Juan",
    "edad" => 30,
    "ciudad" => "Madrid"
);
// Otra forma de definir un array asociativo
$persona = [
    "nombre" => "Juan",
    "edad" => 30,
    "ciudad" => "Madrid"
];
echo $persona["nombre"]; // Imprime: JuanLenguaje del código: PHP (php)

¿Qué son los arrays multidimensionales y cómo se definen?

Los arrays multidimensionales contienen otros arrays como valores lo que permite la creación de matrices o estructuras más complejas..

.Definiendo y mostrando un elemento de un array multidimensional:

$matriz = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9)
);
// Otra forma de definir un array multidimensional
$matriz = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];
echo $matriz[0][1]; // Imprime: 2
Lenguaje del código: PHP (php)

Manipulando arrays con funciones de PHP

Además de definirlos existen distintas funciones para poder manipularlos y utilizarlos de acuerdo a lo que necesitemos al hacer nuestros scripts.

Agregar elementos al final de un array

Para esto podemos utilizar 2 formas la primera con la función array_push() que agrega nuevos elementos al final del array por ejemplo:

$frutas = ["manzana", "banana"];
array_push($frutas, "naranja", "uva");
// $frutas ahora es ["manzana", "banana", "naranja", "uva"]Lenguaje del código: PHP (php)

Con lo anterior podemos agregar distintos elementos al array original o podemos utilizar $array[] = value que nos será útil cuando utilizamos algún bucle por ejemplo y para ello simplemente haremos algo así:

$frutas = ["manzana", "banana"];
$frutas[] = "pera";
// $frutas ahora es ["manzana", "banana", "pera"]Lenguaje del código: PHP (php)

Eliminar elementos de un array

Para eliminar el último elemento de un array utilizamos array_pop() por ejemplo:

$frutas = ["manzana", "banana", "naranja"];
$ultimaFruta = array_pop($frutas);
// $ultimaFruta es "naranja"
// $frutas ahora es ["manzana", "banana"]Lenguaje del código: PHP (php)

Para eliminar el primer elemento de un array utilizamos array_shift() por ejemplo:

$frutas = ["manzana", "banana", "naranja"];
$primeraFruta = array_shift($frutas);
// $primeraFruta es "manzana"
// $frutas ahora es ["banana", "naranja"]Lenguaje del código: PHP (php)

O si queremos eliminar un elemento en específico usaremos unset() por ejemplo:

$frutas = ["manzana", "banana", "naranja", "uva"];
unset($frutas[2]); // Elimina el elemento con índice 2, que es "naranja"

print_r($frutas); Lenguaje del código: PHP (php)

Con esto obtendremos el siguiente resultado:

Array
(
    [0] => manzana
    [1] => banana
    [3] => uva
)Lenguaje del código: PHP (php)

Como podemos ver se eliminó el índice 2 que corresponde a naranja.

Si queremos reindexar el resultado podemos utilizar array_values con lo que los índices serán consecutivos nuevamente por ejemplo:

$frutas = array_values($frutas);

print_r($frutas);Lenguaje del código: PHP (php)

El resultado quedaría así:

Array
(
    [0] => manzana
    [1] => banana
    [2] => uva
)
Lenguaje del código: PHP (php)

Con lo anterior podremos eliminar los valores que necesitemos.

Reemplazar valores en un array con PHP

Para reemplazar un valor es tan sencillo como conocer su índice y al igual que en las variables asignar un nuevo valor lo que sobre escribirá la información anterior por ejemplo:

$frutas = ["manzana", "banana", "naranja"];
$frutas[2] = "toronja";
// $frutas ahora es ["manzana", "banana", "toronja"];Lenguaje del código: PHP (php)

Combinar y extraer partes de un array

Para combinar 2 o más arrays utilizamos array_merge()

$array1 = ["manzana", "banana"];
$array2 = ["naranja", "uva"];
$resultado = array_merge($array1, $array2);
// $resultado es ["manzana", "banana", "naranja", "uva"]Lenguaje del código: PHP (php)

Si queremos extraer algunos elementos utilizaremos array_slice()

$frutas = ["manzana", "banana", "naranja", "uva"];
$corte = array_slice($frutas, 1, 2);
// $corte es ["banana", "naranja"]Lenguaje del código: PHP (php)

Buscar y filtrar elementos en un array

Para confirmar si existe un valor dentro de un array utilizamos in_array() devolviendo true o false dependiendo del resultado.

$frutas = ["manzana", "banana", "naranja"];
$existe = in_array("banana", $frutas);
// $existe es true
Lenguaje del código: PHP (php)

Con el ejemplo anterior solamente sabemos si existe pero si queremos además su clave podemos utilizar array_search()

$frutas = ["manzana", "banana", "naranja"];
$clave = array_search("naranja", $frutas);
// $clave es 2
Lenguaje del código: PHP (php)

También podemos realizar filtros mediante una función por ejemplo, obtener los números pares existentes en un array utilizando array_filter()

$numeros = [1, 2, 3, 4, 5, 6];
$pares = array_filter($numeros, function($numero) {
    return $numero % 2 == 0;
});
// $pares es [2, 4, 6]Lenguaje del código: PHP (php)

Ordenar elementos de un array

Existen varias funciones que nos ayudan a ordenar los elementos de un array de acuerdo a lo que necesitemos:

sort() ordena un array en forma ascendente:

$numeros = [4, 2, 8, 6];
sort($numeros);
// $numeros ahora es [2, 4, 6, 8]
Lenguaje del código: PHP (php)

rsort() ordena los elementos de un array en forma descendente

$numeros = [4, 2, 8, 6];
rsort($numeros);
// $numeros ahora es [8, 6, 4, 2]
Lenguaje del código: PHP (php)

asort() ordena los elementos de un array en forma ascendente manteniendo los índices:

$numeros = [4, 2, 8, 6];
rsort($numeros);
// $numeros ahora es [8, 6, 4, 2]
Lenguaje del código: PHP (php)

ksort() ordena los elementos de acuerdo a sus índices

$personas = [
    "Pedro" => 40,
    "Ana" => 25,
    "Juan" => 35,
    "Lucía" => 28
];

// Ordenar por las claves (nombres) en orden ascendente
ksort($personas);

print_r($personas);
Lenguaje del código: PHP (php)

Obtenemos el siguiente resultado:

Array
(
    [Ana] => 25
    [Juan] => 35
    [Lucía] => 28
    [Pedro] => 40
)
Lenguaje del código: PHP (php)

Obtener solo claves y valores

Para obtener solo las claves en un nuevo array utilizamos array_keys()

$persona = ["nombre" => "Juan", "edad" => 30, "ciudad" => "Madrid"];
$claves = array_keys($persona);
// $claves es ["nombre", "edad", "ciudad"]
Lenguaje del código: PHP (php)

Para obtener un array solo con los valores utilizamos array_values()

$persona = ["nombre" => "Juan", "edad" => 30, "ciudad" => "Madrid"];
$valores = array_values($persona);
// $valores es ["Juan", 30, "Madrid"]
Lenguaje del código: PHP (php)

Operaciones con valores de un array

Podemos sumar los elementos de un array utilizando array_sum()

$numeros = [1, 2, 3, 4];
$suma = array_sum($numeros);
// $suma es 10
Lenguaje del código: PHP (php)

O multiplicarlos con la función array_product()

$numeros = [1, 2, 3, 4];
$producto = array_product($numeros);
// $producto es 24
Lenguaje del código: PHP (php)

Estas son solo algunas de las funciones que podemos utilizar pero PHP contiene otras más que podemos ver en la documentación de arrays