Skip to content
Contenidos
Objetivos
Qué veremos aquí

Introducción a los Arrays ​

Es una estructura compuesta de datos.
  • Un array en php va a ser una colección de elementos (datos) accesibles a través de la variable.

  • Cada elemento puede ser de cualquier tipo

  • Los elementos del array se almacenan a partir de un índice que también puede ser de cualquier tipo simple En php existe una primera clasificación según el valor que tengan en el índice:

Array Indexado: los índices son números que expresan la posición.
php
<?php
$notas[0]= 10;
$notas[1]= 9;
?>
PHPCódigo ejemplo para probar
ejemplo.php
Salida
Pulsa «Ejecutar» para ver el resultado.
Array Asociativo: los índices pueden ser cualquier valor, normalmente con significado semático.
php
<?php
$capital['francia']= 'paris';
$notas['españa']= 'madrid';
?>
PHPCódigo ejemplo para probar
ejemplo.php
Salida
Pulsa «Ejecutar» para ver el resultado.

Un array es una estructura de datos que permite almacenar varios valores en una única variable.

Los arrays en PHP

Un array es un tipo de dato compuesto cuyos elementos se identifican mediante una clave o índice, que puede ser un número entero (int) o una cadena de texto (string).

Los arrays en PHP son estructuras muy flexibles y dinámicas:

  • Pueden almacenar valores de distintos tipos de datos, incluso otros arrays.

  • Pueden crecer o reducirse durante la ejecución, sin necesidad de declarar previamente su tamaño.

  • Sus índices pueden ser números enteros o cadenas de texto.

    Posiciones de un array


  • A diferencia de los arrays tradicionales de algunos lenguajes, los arrays de PHP son estructuras dinámicas, implementadas internamente como tablas hash ordenadas.

  • Los arrays de PHP son especialmente potentes y flexibles, ya que permiten representar estructuras que en otros lenguajes suelen diferenciarse, como arrays, listas, diccionarios o mapas. Sus elementos se organizan en parejas clave → valor, donde las claves pueden ser números enteros o cadenas de texto. Esta característica facilita también el trabajo con datos en formato JSON, especialmente con los objetos JSON, que pueden convertirse en arrays asociativos de PHP.

Array indexado vs array asociativo ​

Para acceder a los elementos de un array utilizamos una clave o índice. En PHP, esta clave no tiene por qué representar la posición que ocupa el elemento.

Habitualmente distinguimos dos formas de utilizar los arrays:

Array indexado: utiliza claves numéricas enteras. Cuando no especificamos las claves, PHP las genera automáticamente, comenzando normalmente por cero.

Array asociativo: utiliza claves con un significado propio, generalmente cadenas de texto, que permiten identificar los valores por su nombre.

Comparación entre un array indexado y uno asociativo

Podemos añadir elementos con claves de texto a un array indexado en cualquier momento, combinando así claves numéricas y asociativas.

Arrays indexados y asociativos

En realidad, PHP utiliza un único tipo de array. La diferencia entre indexado y asociativo depende de las claves utilizadas.

Cuando no indicamos una clave, PHP genera automáticamente una clave entera siguiendo sus reglas de indexación (Crea un valor numérico incrementando el último que se hubiera utilizado).

php
<?php
// array numérico
$modulos1 = array(0 => "Programación",
                  1 => "Bases de datos",
                  9 => "Desarrollo web en entorno servidor");
 
// array asociativo
$modulos2 = array("PR" => "Programación",
                  "BD" => "Bases de datos", 
                  "DWES" => "Desarrollo web en entorno servidor");
var_dump($modulos1);
var_dump($modulos2);
$modulos1 = [0 => "Programación",
                  1 => "Bases de datos", 
                  9 => "Desarrollo web en entorno servidor"];
// array asociativo
$modulos2 = ["PR" => "Programación",
                  "BD" => "Bases de datos", 
                  "DWES" => "Desarrollo web en entorno servidor"];
var_dump($modulos1);
var_dump($modulos2);
?>
PHPCódigo ejemplo para probar
ejemplo.php
Salida
Pulsa «Ejecutar» para ver el resultado.

Como ya hemos visto. los arrays en php se pueden clasifican en función de la clave que llevan:

Clave numérica posicional ( Array Indexado) : La clave especifica la posición de cada elemento.

Clave con valor (Array Asociativo): La clave tiene un significado semántico y tiene asociado un valor.

En los Arrays indexados, el índice empieza por 0.

El contenido de un elemento de un array puede ser cualquier valor, incluido otro array, puediendo fácilmente construir estructuras mas complejas o arrays N-dimensionales, como veremos en ejemplos posteriores.

Crear un array ​

A la hora de trabajar con arrays, hay que saber operar con ellos:

  • Crear o definir un array.
  • Asignar, agregar valores al array.
  • Leer elementos del array.
  • Borrar elementos del array.

Para crear un array lo podemos hacer:

  • Con el operador array();
  • A partir de la versión 5.3 se puede (y recomienda) usar directamente el operador []
php
<?php
/*
Creamos una variable '''array''' llamada ''miArray'' vacía.
Dos formas equivalentes:
*/
$miArray = array();
$miArray = [];
/*
Creamos un array indexado de ciudades
*/
$miArray = array("Burgos","Zaragoza","Huesca", "Teruel","Soria");
$miArray = ["Burgos","Zaragoza","Huesca", "Teruel","Soria"];
var_dump($miArray);
?>
PHPCódigo ejemplo para probar
ejemplo.php
Salida
Pulsa «Ejecutar» para ver el resultado.

Escribiendo: Añadir y modificar elementos ​

Para escribir en un array, simplemente especificamos la clave entre corchetes y le asignamos un valor. Para leer un elemento, utilizamos la misma sintaxis.

Si la clave no existe, PHP la creará automáticamente. Si la clave ya existe, el valor se sobrescribirá.

php
<?php
$notas =[];
$notas[]=10; 
$notas[]=7;
$notas[5]= 8;
$notas [] =9;
$notas [] =6;
var_dump($notas);
?>
PHPCódigo ejemplo para probar
ejemplo.php
Salida
Pulsa «Ejecutar» para ver el resultado.
Podríamos pensar que crearía esta estructura

Arrays con posiciones vacías

Lo que realmente creará :

Arrays con posiciones vacías

Tener cuidad con añadir nuevos elementos no es lo mismo que una asignación.
php
<?php
$notas = [1,2,3,4,5]; //Creo un array con 5 notas
$notas[5] = 6; //añado un nuevo elemento en la posición 5=> 6

$notas = [9]; //Estoy creando un nuevo array con una sola nota 0=>9

?>
PHPCódigo ejemplo para probar
ejemplo.php
Salida
Pulsa «Ejecutar» para ver el resultado.

Si quiero añadir varios elementos a un array, puedo hacerlo con funciones específicas (hablamos de añadir elementos a un array, no de crear un nuevo array a a partir de dos o más arrays):

  • Con funciones
    • array_push() (añadir al final)
    • array_unshift() (añadir al principio)
    • array_splice() Esta función es de propósito más genera, ya que permite insertar, eliminar o sustituir elementos en una posición determinada. En arrays con claves numéricas, los índices se reorganizan consecutivamente a partir de cero. Las claves de tipo string se conservan.
php
<?php
$notas = [1,2,3,4];;
var_dump($notas);
array_push($notas, 5,6,7); //Añade al final
echo "<h2>Añadiendo al final [5,6,7]</h2>";
var_dump($notas);
array_unshift($notas, 8,9); //Añade al inicio
echo "<h2>Añadiendo al principio [8,9]</h2>";
var_dump($notas);
$last = sizeof($notas);
array_splice($notas, $last, 0, [10,11]); //Añade al final 10,11
echo "<h2>Añadiendo al final [10,11]</h2>";
var_dump($notas);
array_splice($notas, 1, 0, ["un valor", "otro"]); //Añade en la poss 1y 2 dos elementos desplazando el resto
echo "<h2>//Añade en la poss 1y 2 dos elementos desplazando el resto</h2>";
var_dump($notas);

?>
PHPCódigo ejemplo para probar
ejemplo.php
Salida
Pulsa «Ejecutar» para ver el resultado.

Eliminar elementos ​

Para eliminar un array:
  • unset() Podemos usar esta función que es para eliminar cualquier variable.
  • null, y también podemos asignarle el valor null
php
<?php
$notas = [1,2,3,4,5];
var_dump($notas);
unset($notas); //Elimina el array
var_dump($notas); //Aquí saldrá un warning, ya que la variable ya no existe
$notas = [1,2,3,4,5];
var_dump($notas);
$notas = null; //Elimina el array
var_dump($notas);
?>
PHPCódigo ejemplo para probar
ejemplo.php
Salida
Pulsa «Ejecutar» para ver el resultado.
Para eliminar un elemento concreto:

Procedemos igual,pero especificando a través de su clave el elemento que queremos eliminar.

Recorrer un array ​

Arrays multidimensionales ​

Funciones y operaciones sobre arrays ​

Funciones habituales ​

Funciones con parámetros de callback ​

Operadores de arrays ​

MRM hablar del desempaquetado (...)

Ejercicios ​

Incorporarlos a tus apuntes ​

Ejercicio 1: Recorrer un array básico
Ver ejercicio
  • Crea un array indexado con 5 países y recórrelo utilizando for.
  • Crea un array asociativo con 5 países como claves y sus capitales como valores.
  • Recorre el segundo array utilizando foreach.
PHPCódigo del ejercicio
ejercicio.php
Salida
Pulsa «Ejecutar» para ver el resultado.
Ejercicio 2: Manipulando un array
Ver ejercicio
  • Crea un array indexado con 5 elementos: números enteros, cadenas y, como quinto elemento, otro array de 3 valores.
  • Muéstralo utilizando var_dump().
  • Añade elementos en los índices 15 y 30 y vuelve a mostrarlo.
  • Reorganiza el array, sin utilizar funciones de arrays, para que sus elementos ocupen índices consecutivos, conservando todos los valores.
PHPCódigo del ejercicio
ejercicio.php
Salida
Pulsa «Ejecutar» para ver el resultado.
Ejercicio 3: Array de notas
Ver ejercicio
  • Crea un array con 10 notas aleatorias.
  • Muestra todas las notas.
  • Calcula la media, la nota máxima y la mínima.

Condición: resuélvelo de forma algorítmica, sin utilizar funciones de arrays para realizar los cálculos.

PHPCódigo del ejercicio
ejercicio.php
Salida
Pulsa «Ejecutar» para ver el resultado.
Ejercicio 4: Utilizando funciones de arrays
Ver ejercicio
  1. Crea un array de 15 notas inicializadas a 0.
  2. Asigna valores aleatorios entre 5 y 10.
  3. Muestra las notas y calcula el máximo, el mínimo y la media.
  4. Crea otro array de 15 notas aleatorias entre 0 y 5.
  5. Combina ambos arrays y vuelve a calcular los valores estadísticos.
  6. Recorre el resultado con foreach y con reset(), current(), key() y next(), mostrando claves y valores.
  7. Busca la posición del primer 10 y comprueba si existen las notas 7 y 4.
  8. Ordena las notas de forma ascendente y descendente.
  9. Elimina los valores repetidos.

Condición: utiliza las funciones de arrays estudiadas.

PHPCódigo del ejercicio
ejercicio.php
Salida
Pulsa «Ejecutar» para ver el resultado.
Ejercicio 5: Imágenes aleatorias
Ver ejercicio
  • Crea un array con las URL de varias imágenes.
  • Muestra 3 imágenes aleatorias, sin repetir ninguna.
  • Actualiza la página cada 5 segundos para mostrar otras 3 imágenes.
💡 Ayuda: recarga de página y array de imágenes

Para recargar automáticamente una página cada 5 segundos puedes utilizar esta etiqueta HTML dentro de <head>:

html
<meta http-equiv="refresh" content="5">

Si deseas indicar expresamente la página que se recargará:

html
<meta http-equiv="refresh" content="5; url=vuestra_pagina.php">

Array de imágenes de ejemplo:

php
<?php
$imagenes = [
    "https://es.wikieducator.org/images/3/3d/Ajax_cliente_servidor.png",
    "https://es.wikieducator.org/images/7/7b/Funcionamiento_ajax.png",
    "https://es.wikieducator.org/images/a/aa/Angular_app_base.png",
    "https://es.wikieducator.org/images/3/3d/Docker_distancia_1.png",
    "https://es.wikieducator.org/images/4/4e/Opcion_Instalar.png",
    "https://es.wikieducator.org/images/a/ab/AplicacionWeb.png",
    "https://es.wikieducator.org/images/e/e4/Red3.png",
    "https://es.wikieducator.org/images/f/f2/DACTW.png",
    "https://es.wikieducator.org/images/e/e5/M3_web.png",
    "https://es.wikieducator.org/images/a/a6/Ficheros.jpeg"
];
PHPCódigo del ejercicio
ejercicio.php
Salida
Pulsa «Ejecutar» para ver el resultado.
Ejercicio 6: Tienda de verduras
Ver ejercicio

Partiendo del siguiente array de productos: Vamos a hacer una tienda dónde visualicemos :

  • Un formulario con los productos a comprar
  • Un informe con la factura y los productos que nos quedan
php
<?php
$productos = [
    'lechuga' => ['unidades' => 200, 'precio' => 0.90],
    'tomates' => ['unidades' => 2000, 'precio' => 2.15],
    'cebollas' => ['unidades' => 3200, 'precio' => 0.49],
    'fresas' => ['unidades' => 4800, 'precio' => 4.50],
    'manzanas' => ['unidades' => 2500, 'precio' => 2.10],
];
🎨 CSS para dar estilo a la tienda

Puedes utilizar estas clases CSS para presentar el formulario y la factura.

css
/* Contenedor de la tienda */
.tienda {
    max-width: 550px;
    margin: 30px auto;
    padding: 25px;
    background: #f0fdf4;
    border: 1px solid #86efac;
    border-radius: 12px;
    font-family: Verdana, sans-serif;
    color: #14532d;
}

/* Título */
.tienda h2 {
    text-align: center;
    color: #166534;
}

/* Formulario */
.tienda form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.tienda label {
    font-weight: bold;
}

.tienda input,
.tienda select {
    padding: 10px;
    border: 1px solid #86efac;
    border-radius: 6px;
    font-size: 1rem;
    background: white;
    color: #222;
}

/* Botón de compra */
.tienda button {
    padding: 12px;
    background: #16a34a;
    color: white;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-weight: bold;
}

.tienda button:hover {
    background: #15803d;
}

/* Factura */
.factura {
    margin-top: 20px;
    padding: 15px;
    background: white;
    border: 1px solid #bbf7d0;
    border-radius: 8px;
    color: #222;
}

/* Mensajes */
.error {
    color: #b91c1c;
    font-weight: bold;
}

.exito {
    color: #15803d;
    font-weight: bold;
}
.form-group{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-bottom: 12px;
}
.informes {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 24px;
    margin-top: 24px;
}

.informes .factura {
    min-width: 250px;
}
PHPCódigo del ejercicio
ejercicio.php
Salida
Pulsa «Ejecutar» para ver el resultado.
Ejercicio 7: Accesos de usuario
Ver ejercicio

Crea una aplicación que permita identificar a los usuarios y contar sus accesos.

  • Muestra un formulario para introducir el nombre de usuario.
  • Utiliza un array asociativo cuya clave sea el nombre y cuyo valor sea el número de accesos.
  • Cada vez que el usuario pulse el botón, incrementa su contador.
  • Muestra los usuarios y sus accesos acumulados.

Condición: conserva los contadores entre envíos del formulario.

PHPCódigo del ejercicio
ejercicio.php
Salida
Pulsa «Ejecutar» para ver el resultado.
Ejercicio 8: Array multinivel de artistas
Ver ejercicio

Disponemos de un array multidimensional $artistas que contiene información de artistas musicales y sus canciones.

  1. Analiza la estructura del array, identificando sus claves, valores y niveles.
  2. Explica qué partes son arrays indexados y cuáles son asociativos.
  3. Recorre el array mostrando el nombre y las décadas de cada artista.
  4. Muestra debajo de cada artista los títulos de sus canciones y sus enlaces.
  5. Utiliza CSS para diferenciar visualmente los artistas y sus canciones.

Datos: utiliza el array $artistas proporcionado con el ejercicio.

PHPCódigo del ejercicio
ejercicio.php
Salida
Pulsa «Ejecutar» para ver el resultado.
Ejercicio 9: Canales de televisión
Ver ejercicio

Utiliza el fichero JSON de canales de televisión disponible en:

https://github.com/MAlejandroR/json_tv

  • Descarga el contenido de tv.json utilizando file_get_contents().
  • Convierte el JSON en un array asociativo con json_decode().
  • Analiza su estructura y recórrelo con foreach.
  • Muestra los canales de televisión, incluyendo su nombre y logotipo.

URL del fichero:

php
$url = "https://raw.githubusercontent.com/MAlejandroR/json_tv/main/tv.json";
PHPCódigo del ejercicio
ejercicio.php
Salida
Pulsa «Ejecutar» para ver el resultado.

👁 Visitas: 529