· Andrés Ledo · PHP · Lectura en 9 min
¿Qué son los arrays en PHP y cómo usarlos?
Aprende a utilizar arrays en PHP para almacenar varios valores en una sola variable y simplificar tu código.".
Índice
- ¿Qué es un array en PHP?
- ¿Cómo crear un array en PHP?
- ¿Cómo modificar un array en PHP?
- ¿Cómo recorrer un array en PHP?
- ¿Qué funciones hay para trabajar con arrays en PHP?
- Conclusión
¿Qué es un array en PHP?
Un array en PHP es, en realidad, un mapa ordenado. Un mapa es un tipo de dato que asocia valores con claves, de forma que se puede acceder a un valor a través de su clave correspondiente. Por ejemplo, si tenemos un array que almacena los nombres y las edades de tres personas, podríamos acceder a la edad de una persona usando su nombre como clave.
Un array en PHP se puede optimizar para varios usos diferentes, dependiendo de cómo se definan las claves y los valores. Se puede emplear como:
Un array indexado: es un array con claves numéricas. Los elementos se almacenan y acceden mediante un índice numérico, que empieza por 0 y se incrementa en 1 por cada elemento. Este tipo de array se parece a una lista o un vector en otros lenguajes de programación.
Un array asociativo: es un array con claves nombradas. Los elementos se almacenan y acceden mediante una clave nombrada, que puede ser un string o un integer. Este tipo de array se parece a una tabla hash o un diccionario en otros lenguajes de programación.
Un array multidimensional: es un array que contiene uno o más arrays como valores. Cada array dentro del array multidimensional puede ser indexado o asociativo, y puede tener cualquier nivel de profundidad. Este tipo de array se parece a una matriz o un árbol en otros lenguajes de programación.
¿Cómo crear un array en PHP?
Hay dos formas principales de generar un array en PHP: usando el constructor del lenguaje array()
o usando la sintaxis de array corta []
. Ambas formas permiten especificar cualquier número de parejas clave => valor como argumentos, separados por comas. La clave y el valor se separan por el signo =>
. El valor puede ser de cualquier tipo: otro array, un string, un integer, un float, un booleano, un null, etc.
La diferencia entre las dos formas es que el constructor array()
emplea paréntesis para delimitar el array, mientras que la sintaxis corta usa corchetes. La sintaxis corta está disponible desde PHP 5.4 y es más concisa y legible.
Veamos algunos ejemplos de cómo crear arrays en PHP:
// Crear un array indexado usando el constructor array()
$array1 = array("rojo", "verde", "azul");
// Crear un array indexado usando la sintaxis corta
$array2 = ["rojo", "verde", "azul"];
// Crear un array asociativo usando el constructor array()
$array3 = array("nombre" => "Ana", "edad" => 25, "ciudad" => "Madrid");
// Crear un array asociativo usando la sintaxis corta
$array4 = ["nombre" => "Ana", "edad" => 25, "ciudad" => "Madrid"];
// Crear un array multidimensional usando el constructor array()
$array5 = array(
"frutas" => array("manzana", "naranja", "plátano"),
"colores" => array("rojo", "verde", "azul")
);
// Crear un array multidimensional usando la sintaxis corta
$array6 = [
"frutas" => ["manzana", "naranja", "plátano"],
"colores" => ["rojo", "verde", "azul"]
];
¿Cómo modificar un array en PHP?
Una vez creado un array en PHP, podemos modificarlo añadiendo, eliminando o cambiando sus elementos. Para ello, podemos usar las claves o los índices para acceder a los elementos del array y asignarles nuevos valores.
También podemos usar algunas funciones predefinidas de PHP para modificar los arrays, como array_push()
, array_pop()
, array_shift()
, array_unshift()
, array_splice()
, array_slice()
, array_merge()
, array_replace()
, etc. Estas funciones permiten insertar, extraer, reemplazar o combinar elementos de uno o más arrays.
Veamos algunos ejemplos de cómo modificar arrays en PHP:
// Modificar un array indexado usando los índices
$array1 = ["rojo", "verde", "azul"];
$array1[0] = "amarillo"; // Cambiar el primer elemento por "amarillo"
$array1[3] = "negro"; // Añadir un nuevo elemento al final con el índice 3
unset($array1[1]); // Eliminar el segundo elemento usando la función unset()
// Modificar un array asociativo usando las claves
$array2 = ["nombre" => "Ana", "edad" => 25, "ciudad" => "Madrid"];
$array2["nombre"] = "Luis"; // Cambiar el valor de la clave "nombre" por "Luis"
$array2["pais"] = "España"; // Añadir un nuevo elemento con la clave "pais"
unset($array2["ciudad"]); // Eliminar el elemento con la clave "ciudad"
// Modificar un array multidimensional usando las claves o los índices
$array3 = [
"frutas" => ["manzana", "naranja", "plátano"],
"colores" => ["rojo", "verde", "azul"]
];
$array3["frutas"][0] = "pera"; // Cambiar el primer elemento del subarray "frutas" por "pera"
$array3["colores"][] = "rosa"; // Añadir un nuevo elemento al final del subarray "colores"
unset($array3["frutas"][2]); // Eliminar el tercer elemento del subarray "frutas"
// Modificar un array usando funciones predefinidas de PHP
$array4 = ["rojo", "verde", "azul"];
array_push($array4, "amarillo"); // Insertar un elemento al final del array
array_pop($array4); // Extraer el último elemento del array
array_shift($array4); // Extraer el primer elemento del array
array_unshift($array4, "negro"); // Insertar un elemento al principio del array
array_splice($array4, 1, 2, ["blanco", "gris"]); // Reemplazar dos elementos a partir del índice 1 por otros dos elementos
$array5 = ["rosa", "morado"];
$array6 = array_merge($array4, $array5); // Combinar dos arrays en uno solo
¿Cómo recorrer un array en PHP?
Para recorrer un array en PHP, es decir, para acceder a todos sus elementos de forma secuencial, podemos emplear diferentes métodos, dependiendo del tipo de array y de lo que queramos hacer con sus elementos.
Los métodos más comunes para recorrer un array en PHP son:
Utilizar un bucle
for
oforeach
: estos bucles nos permiten iterar sobre los elementos de un array indexado o asociativo, y acceder a sus claves y valores. El buclefor
requiere conocer el número de elementos del array y emplear los índices para acceder a ellos. El bucleforeach
es más sencillo y nos permite recorrer el array sin necesidad de conocer su tamaño ni sus claves.Emplear una función de devolución de llamada: esta opción nos permite aplicar una función a cada elemento de un array, y obtener un nuevo array con los resultados. Algunas funciones predefinidas de PHP que emplean este método son
array_map()
,array_filter()
,array_reduce()
, etc.
Veamos algunos ejemplos de cómo recorrer arrays en PHP:
// Recorrer un array indexado usando un bucle for
$array1 = ['rojo', 'verde', 'azul'];
$size = count($array1); // Obtener el número de elementos del array
for ($i = 0; $i < $size; $i++) {
echo $array1[$i] . "\n"; // Mostrar el valor del elemento con el índice $i
}
// Recorrer un array asociativo usando un bucle foreach
$array2 = ['nombre' => 'Ana', 'edad' => 25, 'ciudad' => 'Madrid'];
foreach ($array2 as $key => $value) {
echo $key . ': ' . $value . "\n"; // Mostrar la clave y el valor de cada elemento del array
}
// Recorrer un array multidimensional utilizando un bucle foreach anidado
$array3 = [ 'frutas' => ['manzana', 'naranja', 'plátano'], 'colores' => ['rojo', 'verde', 'azul'] ];
foreach ($array3 as $key => $value) {
echo $key . ": \n"; // Mostrar la clave del subarray
foreach ($value as $item) {
echo $item . "\n"; // Mostrar el valor de cada elemento del subarray
}
}
// Recorrer un array usando una función de devolución de llamada
$array4 = [1, 2, 3, 4, 5];
function square($x) {
return $x * $x; // Devolver el cuadrado de un número
}
$array5 = array_map('square', $array4); // Aplicar la función square a cada elemento de $array4 y obtener un nuevo array con los resultados
print_r($array5); // Mostrar el nuevo array
¿Qué funciones hay para trabajar con arrays en PHP?
PHP ofrece una gran variedad de funciones predefinidas para trabajar con arrays, que nos permiten realizar diferentes operaciones, como ordenar, buscar, contar, filtrar, comparar, combinar, dividir, rellenar, invertir, etc.
Algunas de las funciones más útiles y frecuentes para trabajar con arrays en PHP son:
count()
: devuelve el número de elementos de un array.sort()
: ordena los elementos de un array por sus valores en orden ascendente.rsort()
: ordena los elementos de un array por sus valores en orden descendente.asort()
: ordena los elementos de un array asociativo por sus valores en orden ascendente, manteniendo la asociación entre claves y valores.arsort()
: ordena los elementos de un array asociativo por sus valores en orden descendente, manteniendo la asociación entre claves y valores.ksort()
: ordena los elementos de un array asociativo por sus claves en orden ascendente.krsort()
: ordena los elementos de un array asociativo por sus claves en orden descendente.in_array()
: comprueba si un valor existe en un array.array_key_exists()
: comprueba si una clave existe en un array asociativo.array_search()
: busca un valor en un array y devuelve la clave correspondiente si lo encuentra.array_keys()
: devuelve un array con todas las claves de un array asociativo.array_values()
: devuelve un array con todos los valores de un array asociativo.array_diff()
: compara dos o más arrays y devuelve un array con los elementos que solo están en el primer array.array_intersect()
: compara dos o más arrays y devuelve un array con los elementos que están en todos los arrays.array_unique()
: elimina los elementos duplicados de un array y devuelve un nuevo array con los elementos únicos.array_reverse()
: invierte el orden de los elementos de un array y devuelve un nuevo array con los elementos en orden inverso.array_rand()
: elige uno o más elementos aleatorios de un array y devuelve sus claves o valores.array_fill()
: crea un nuevo array y lo rellena con un valor especificado.
Estas son solo algunas de las funciones que existen para trabajar con arrays en PHP. Puedes consultar la documentación oficial de PHP para ver la lista completa y los ejemplos de uso.
Conclusión
Los arrays en PHP son una herramienta muy poderosa y flexible para almacenar y manipular datos. En este artículo, hemos visto qué son los arrays en PHP, qué tipos hay, cómo crearlos, modificarlos y recorrerlos, y qué funciones podemos usar para trabajar con ellos. Esperamos que este artículo te haya sido útil y que te animes a usar los arrays en PHP para tus proyectos.