Arrays Indexados
Los arrays son una de las estructuras de datos más importantes en PHP. Un array indexado es una lista ordenada de valores, donde cada elemento tiene un índice numérico que empieza en 0.
Crear arrays
Hay varias formas de crear un array en PHP:
<?php
// Sintaxis corta (recomendada desde PHP 5.4)
$frutas = ['manzana', 'pera', 'naranja'];
// Sintaxis clásica con array()
$colores = array('rojo', 'verde', 'azul');
// Array vacío
$lista = [];
// Array con diferentes tipos de datos
$mixto = ['texto', 42, 3.14, true, null];
// Mostrar contenido del array
print_r($frutas);
/*
Array
(
[0] => manzana
[1] => pera
[2] => naranja
)
*/
En PHP (y en la mayoría de lenguajes), el primer elemento tiene índice 0, el segundo índice 1, y así sucesivamente.
Acceder a elementos
Usa el índice entre corchetes para acceder a un elemento específico:
<?php
$frutas = ['manzana', 'pera', 'naranja', 'plátano'];
// Acceder por índice
echo $frutas[0]; // manzana
echo $frutas[2]; // naranja
// Último elemento (conociendo la longitud)
$ultimo = $frutas[count($frutas) - 1];
echo $ultimo; // plátano
// Acceso negativo NO funciona en PHP (a diferencia de Python)
// echo $frutas[-1]; // Warning: Undefined array key -1
// Verificar si existe un índice
if (isset($frutas[5])) {
echo $frutas[5];
} else {
echo 'No existe el índice 5';
}
Modificar elementos
<?php
$frutas = ['manzana', 'pera', 'naranja'];
// Modificar un elemento existente
$frutas[1] = 'uva';
print_r($frutas); // ['manzana', 'uva', 'naranja']
// Asignar a un índice específico (puede crear huecos)
$frutas[5] = 'kiwi';
print_r($frutas);
/*
Array
(
[0] => manzana
[1] => uva
[2] => naranja
[5] => kiwi // Índices 3 y 4 no existen
)
*/
Añadir elementos
<?php
$frutas = ['manzana', 'pera'];
// Añadir al final con []
$frutas[] = 'naranja';
$frutas[] = 'plátano';
print_r($frutas); // ['manzana', 'pera', 'naranja', 'plátano']
// Añadir al final con array_push()
array_push($frutas, 'uva', 'kiwi');
print_r($frutas); // ['manzana', 'pera', 'naranja', 'plátano', 'uva', 'kiwi']
// Añadir al inicio con array_unshift()
array_unshift($frutas, 'fresa');
print_r($frutas); // ['fresa', 'manzana', 'pera', ...]
Para añadir un solo elemento,
$array[] = $valor es más
rápido que array_push().
Usa array_push() cuando
necesites añadir múltiples elementos a
la vez.
Eliminar elementos
<?php
$frutas = ['manzana', 'pera', 'naranja', 'plátano', 'uva'];
// Eliminar del final y obtener el valor
$ultimo = array_pop($frutas);
echo $ultimo; // uva
print_r($frutas); // ['manzana', 'pera', 'naranja', 'plátano']
// Eliminar del inicio y obtener el valor
$primero = array_shift($frutas);
echo $primero; // manzana
print_r($frutas); // ['pera', 'naranja', 'plátano']
// Eliminar por índice con unset (NO reordena índices)
$numeros = [10, 20, 30, 40, 50];
unset($numeros[2]);
print_r($numeros);
/*
Array
(
[0] => 10
[1] => 20
[3] => 40 // ¡El índice 2 ya no existe!
[4] => 50
)
*/
// Reindexar después de unset
$numeros = array_values($numeros);
print_r($numeros); // [10, 20, 40, 50] con índices 0, 1, 2, 3
Recorrer arrays
<?php
$frutas = ['manzana', 'pera', 'naranja'];
// foreach (la forma más común y recomendada)
foreach ($frutas as $fruta) {
echo "- $fruta\n";
}
// foreach con índice
foreach ($frutas as $indice => $fruta) {
echo "$indice: $fruta\n";
}
// 0: manzana
// 1: pera
// 2: naranja
// for tradicional
for ($i = 0; $i < count($frutas); $i++) {
echo $frutas[$i] . "\n";
}
// for optimizado (guarda count en variable)
$total = count($frutas);
for ($i = 0; $i < $total; $i++) {
echo $frutas[$i] . "\n";
}
Longitud y verificaciones
<?php
$frutas = ['manzana', 'pera', 'naranja'];
$vacio = [];
// Contar elementos
echo count($frutas); // 3
echo sizeof($frutas); // 3 (alias de count)
// Verificar si es un array
var_dump(is_array($frutas)); // bool(true)
var_dump(is_array('texto')); // bool(false)
// Verificar si está vacío
if (empty($vacio)) {
echo 'El array está vacío';
}
// Forma alternativa
if (count($vacio) === 0) {
echo 'El array está vacío';
}
// Verificar si un valor existe en el array
if (in_array('pera', $frutas)) {
echo 'Encontrado';
}
// in_array con comparación estricta
$numeros = [1, 2, 3];
var_dump(in_array('1', $numeros)); // true (comparación débil)
var_dump(in_array('1', $numeros, true)); // false (comparación estricta)
Buscar en arrays
<?php
$frutas = ['manzana', 'pera', 'naranja', 'pera'];
// Buscar índice de un valor
$indice = array_search('naranja', $frutas);
echo $indice; // 2
// array_search devuelve false si no encuentra
$resultado = array_search('kiwi', $frutas);
if ($resultado === false) {
echo 'No encontrado';
}
// ¡Cuidado! Usa === para comparar con false
$indice = array_search('manzana', $frutas); // Devuelve 0
if ($indice == false) {
// ¡ERROR! 0 == false es true
}
if ($indice === false) {
// CORRECTO: 0 === false es false
}
// Encontrar todas las ocurrencias
$indices = array_keys($frutas, 'pera');
print_r($indices); // [1, 3]
array_search() devuelve
false si no encuentra el
valor, pero puede devolver
0 si lo encuentra en el
primer índice. Como
0 == false es true, debes
usar ===.
Ejemplos prácticos
<?php
// Lista de tareas
$tareas = [];
// Añadir tareas
$tareas[] = 'Comprar leche';
$tareas[] = 'Llamar al médico';
$tareas[] = 'Enviar informe';
// Mostrar tareas pendientes
echo "Tareas pendientes:\n";
foreach ($tareas as $i => $tarea) {
echo ($i + 1) . ". $tarea\n";
}
// Completar una tarea (eliminar)
$completada = array_shift($tareas);
echo "\nCompletada: $completada\n";
// Sumar elementos de un array
$precios = [19.99, 29.99, 9.99, 49.99];
$total = 0;
foreach ($precios as $precio) {
$total += $precio;
}
echo "Total: $total\n"; // 109.96
// Forma más elegante
$total = array_sum($precios);
echo "Total: $total\n"; // 109.96
// Crear array de números
$numeros = range(1, 10);
print_r($numeros); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
// Crear array de letras
$letras = range('a', 'f');
print_r($letras); // ['a', 'b', 'c', 'd', 'e', 'f']
Ejercicios
Ejercicio 1: Crear y recorrer un array
Crea un array con los nombres de 4 colores. Luego recorre el array con foreach e imprime cada color en una linea.
Ver solucion
<?php
declare(strict_types=1);
$colores = ['rojo', 'verde', 'azul', 'amarillo'];
foreach ($colores as $color) {
echo "$color\n";
}
Ejercicio 2: Sumar elementos de un array
Dado el array
$numeros = [10, 25, 8, 42, 15],
calcula la suma total usando un bucle foreach
(sin usar array_sum).
Ver solucion
<?php
declare(strict_types=1);
$numeros = [10, 25, 8, 42, 15];
$suma = 0;
foreach ($numeros as $numero) {
$suma += $numero;
}
echo "La suma total es: $suma\n";
Ejercicio 3: Buscar un elemento
Dado el array
$frutas = ['manzana', 'pera', 'naranja',
'uva'], busca si existe 'naranja' usando in_array() e
imprime un mensaje indicando si se encontro o
no.
Ver solucion
<?php
declare(strict_types=1);
$frutas = ['manzana', 'pera', 'naranja', 'uva'];
$buscar = 'naranja';
if (in_array($buscar, $frutas, true)) {
echo "La fruta '$buscar' esta en el array\n";
} else {
echo "La fruta '$buscar' no esta en el array\n";
}
¿Has encontrado un error o tienes una sugerencia para mejorar esta lección?
Escríbenos¿Te está gustando el curso?
Tenemos cursos premium con proyectos reales y soporte personalizado.
Descubrir cursos premium