Cómo configurar CodeIgniter 4 con Nginx en un VPS Ubuntu 20 paso a paso
Aprende a configurar CodeIgniter 4 con Nginx en un VPS Ubuntu 20. Guía completa para instalar, optimizar y desplegar tu aplicación web de forma segura y eficiente.
Leer másResumen: Esta guía cubre desde los conceptos básicos hasta temas avanzados sobre arrays en PHP. Incluye ejemplos comentados, funciones comunes, buenas prácticas, rendimiento y ejercicios para practicar.
Un array es una estructura de datos que almacena múltiples valores en una sola variable. En PHP, los arrays son heterogéneos (pueden contener diferentes tipos) y dinámicos (puedes añadir o quitar elementos en tiempo de ejecución).
PHP implementa arrays con asociative arrays internamente — es decir, cada elemento tiene una clave (key) que puede ser un entero o una cadena, y un valor (value).
<?php
$frutas = ["Manzana", "Banana", "Naranja"];
<?php
$frutas = array("Manzana", "Banana", "Naranja");
<?php
$persona = [
"nombre" => "Andrés",
"edad" => 30,
"ciudad" => "Lima"
];
<?php
echo $frutas[0]; // Manzana
echo $persona["nombre"]; // Andrés
<?php
$frutas[1] = "Pera"; // reemplaza Banana por Pera
$persona["edad"] = 31;
<?php
$datos["telefono"] = "987654321";
<?php
unset($frutas[2]); // elimina Naranja (la clave 2)
Nota: unset() elimina la clave. Si trabajas con índices numéricos, la reindexación no ocurre automáticamente (usa array_values() si quieres reindexar).
<?php
foreach ($frutas as $index => $valor) {
echo "$index => $valor
";
}
<?php
foreach ($frutas as &$valor) {
$valor = strtoupper($valor);
}
unset($valor); // muy importante: eliminar la referencia al final
Si olvidas unset($valor) tras usar la referencia, la variable seguirá referenciando el último elemento y puede causar bugs.
<?php
for ($i=0, $n = count($frutas); $i < $n; $i++) {
echo $frutas[$i];
}
each() fue deprecated y eliminada en versiones recientes — usa foreach o ArrayIterator.
Nota: hay muchas funciones; aquí están las más usadas y prácticas.
count($arr) o sizeof($arr) — número de elementos.<?php
echo count($frutas); // 3
array_push($arr, $val) — añade al final (devuelve nuevo tamaño).array_pop($arr) — elimina y devuelve el último elemento.array_unshift($arr, $val) — añade al inicio.array_shift($arr) — elimina y devuelve el primer elemento.<?php
array_push($frutas, "Kiwi");
$ultimo = array_pop($frutas);
in_array($needle, $haystack) — busca valor.array_search($needle, $haystack) — devuelve clave o false.array_key_exists($key, $arr) — comprueba si existe la clave.isset($arr[$key]) — similar pero false si la clave existe y es null.<?php
if (in_array("Pera", $frutas)) { echo "existe"; }
$key = array_search("Pera", $frutas); // 1
array_map($callback, $arr) — aplica una función a cada elemento y devuelve nuevo array.array_filter($arr, $callback) — devuelve elementos que cumplan la condición.array_reduce($arr, $callback, $initial) — reduce en un único valor.array_walk($arr, $callback) — aplica función a cada elemento (no devuelve nuevo array, actúa en sitio o por referencia).<?php
$mayus = array_map('strtoupper', $frutas);
$pares = array_filter([1,2,3,4,5], fn($v) => $v % 2 === 0);
$sum = array_reduce([1,2,3,4], fn($carry,$v) => $carry + $v, 0);
array_keys($arr) — devuelve array de claves.array_values($arr) — devuelve array de valores.array_key_first($arr) / array_key_last($arr) — (PHP 7.3+) obtienen la primera/ultima clave.array_merge($a, $b) — une arrays; reindexa claves numéricas.array_merge_recursive($a, $b) — combina recursivamente.$union = $a + $b — unión por claves (preserva claves del primer array).array_combine($keys, $values) — crea array combinando claves y valores (ambos arrays deben tener mismo tamaño).<?php
$a = [0 => "cero", 1 => "uno"];
$b = [0 => "A", 2 => "dos"];
print_r(array_merge($a, $b)); // reindexa
print_r($a + $b); // conserva claves del $a
array_values($arr) — devuelve array con índices numéricos reindexados desde 0.array_slice, array_splice, array_chunk, array_rand, shuffle, array_unique, array_sum, array_product, array_count_values, array_column, array_flip.<?php
$parte = array_slice($frutas, 1, 2); // obtiene subarray
array_splice($frutas, 1, 1, ["Pera", "Melón"]); // reemplaza
$chunks = array_chunk($frutas, 2);
Importante: algunas funciones preservan las claves y otras no.
sort($arr) — ordena valores, reindexa claves.rsort($arr) — orden descendente.asort($arr) — ordena manteniendo relación clave=>valor (preserva claves).arsort($arr) — como asort en orden descendente.ksort($arr) — ordena por claves (ascendente).krsort($arr) — por claves (descendente).usort($arr, $callback) — ordena usando función de comparación (no preserva claves).uasort($arr, $callback) — orden por valores con callback y preserva claves.Ejemplo — ordenar asociativo por valores manteniendo claves:
<?php
$productos = ["a" => 10, "b" => 5, "c" => 8];
asort($productos); // b=>5, c=>8, a=>10 (claves preservadas)
Ejemplo — usort para objetos
<?php
$usuarios = [
["name" => "Ana", "edad" => 30],
["name" => "Luis", "edad" => 25],
];
usort($usuarios, fn($a,$b) => $a['edad'] <=> $b['edad']); // ordena por edad
Un array puede contener arrays (matrices / tablas).
<?php
$matriz = [
[1,2,3],
[4,5,6],
[7,8,9]
];
echo $matriz[1][2]; // 6
<?php
$usuarios = [
["id"=>1, "name"=>"Ana"],
["id"=>2, "name"=>"Luis"],
];
echo $usuarios[0]['name']; // Ana
<?php
foreach ($matriz as $fila) {
foreach ($fila as $valor) {
echo $valor;
}
}
<?php
$names = array_column($usuarios, 'name'); // ["Ana", "Luis"]
<?php
$producto = [
"id" => 10,
"nombre" => "Camiseta",
"precio" => 29.90
];
<?php
$usersById = [
101 => ["name"=>"Ana"],
102 => ["name"=>"Luis"]
];
echo $usersById[101]['name']; // Ana
<?php
$usersById[101]['email'] = "ana@example.com";
array_merge($a, $b) — combine arrays.array_slice($arr, $offset, $length) — copia parcial sin modificar original.array_splice(&$arr, $offset, $length, $replacement) — modifica el array original.array_chunk($arr, $size) — divide en bloques.<?php
$a = [1,2,3,4,5];
$b = array_slice($a, 1, 3); // [2,3,4]
array_splice($a, 1, 2); // $a ahora [1,4,5]
En PHP, la asignación de arrays usa copy-on-write: asignar un array a otra variable no duplica memoria hasta que uno de los dos se modifica.
<?php
$a = [1,2,3];
$b = $a; // no copia inmediatamente (copy-on-write)
$b[0] = 99; // ahora PHP hace la copia y modifica $b
<?php
$a = [1,2,3];
$b = &$a; // $b referencia a $a
$b[0] = 99;
echo $a[0]; // 99
Usa referencias con cuidado: pueden causar código difícil de mantener.
<?php
$json = json_encode($producto);
$array = json_decode($json, true); // true devuelve array asociativo
<?php
$csv = implode(",", $frutas); // "Manzana,Pera, ..."
$parts = explode(",", $csv);
<?php
$s = serialize($producto);
$orig = unserialize($s);
<?php
$std = (object) $producto; // array a objeto stdClass
$arr = (array) $std; // objeto a array
yield) para procesar elemento a elemento sin cargar todo en memoria.SplFixedArray puede usar menos memoria si el tamaño es fijo, pero su uso es menos común y la API es distinta.foreach con count() en la condición sin almacenarla en variable si el array puede cambiar en cada iteración. Mejor hacer $n = count($arr) antes.Ejemplo de generator
<?php
function iterarLineas($file) {
$f = fopen($file, 'r');
while (($line = fgets($f)) !== false) {
yield $line;
}
fclose($f);
}
foreach (iterarLineas('archivo.txt') as $line) {
// procesa línea sin cargar todo el archivo
}
ArrayObject y ArrayIterator — objetos que envuelven arrays y permiten métodos de iteración y manipulación.SplFixedArray — array de tamaño fijo (menor consumo de memoria en algunos casos).yield) — recorrer grandes conjuntos sin memorizarlos.unset($var) después de foreach(&$v) — produce referencias indeseadas.array_merge creyendo que preservará claves numéricas — array_merge reindexa claves numéricas.isset() y array_key_exists() — isset() devuelve false si la clave existe y su valor es null.array_combine() — ambos arrays deben tener el mismo tamaño.Invertir array: escribir función que reciba array y devuelva mismo array invertido sin usar array_reverse().
Contar palabras: dada una cadena, contar cuántas veces aparece cada palabra (uso de explode() y array_count_values()).
Agrupar por propiedad: dado array de usuarios con ['id','name','city'], agruparlos por city (resultado: ['Lima' => [user1,user2], 'Cusco'=>[...]]).
Merge sin perder claves: combinar dos arrays asociativos sin que las claves del primer array se sobrescriban (usa el operador +).
Filtrar duplicados por campo: dada lista de arrays (usuarios) eliminar duplicados por email conservando el primero.
var_dump($arr) — muestra estructura con tipos.print_r($arr) — formato legible.var_export($arr, true) — devuelve código PHP que representa el array.foreach para iterar por claridad. array_combine). yield o estructuras más eficientes. array_merge, sort, asort. unset().count(), in_array(), array_search(), array_key_exists(), isset(), array_keys(), array_values(), array_map(), array_filter(), array_reduce(), array_push(), array_pop(), array_shift(), array_unshift(), array_merge(), array_slice(), array_splice(), array_chunk(), array_column(), array_unique(), array_sum(), array_reverse().¿Quieres que guarde este contenido en un archivo .md para descargarlo? Puedo:
arrays-en-php-completo.md y darte el enlace de descarga, oAprende a configurar CodeIgniter 4 con Nginx en un VPS Ubuntu 20. Guía completa para instalar, optimizar y desplegar tu aplicación web de forma segura y eficiente.
Leer másAprende a usar condicionales en PHP paso a paso. Descubre cómo funcionan if, else, elseif, switch, el operador ternario y ?? con ejemplos prácticos y buenas prácticas de programación.
Leer másAprende Clases y Objetos en PHP (POO): sintaxis, propiedades, métodos, visibilidad, herencia, interfaces, traits, magic methods y ejemplos prácticos. Ideal para PHP 7/8+
Leer másAprende todo sobre los arrays en PHP: qué son, cómo se crean, tipos de arrays, funciones útiles y ejemplos prácticos para programadores principiantes.
Leer másAprende los fundamentos de PHP desde cero. Descubre qué son las variables, cómo se declaran, sus tipos principales y ejemplos prácticos para comenzar a programar en PHP.
Leer másAprende a usar variables en PHP con ejemplos claros. Descubre cómo declararlas, concatenar cadenas de texto, realizar operaciones matemáticas y aplicar operadores en tus proyectos de programación web.
Leer másDescubre las principales tendencias en marketing digital para redes sociales en 2025. Aprende cómo las marcas usarán IA, contenido corto, influencers y nuevas plataformas para conectar con su audiencia.
Leer másDescubre la historia y las consecuencias de la Batalla de Dolores, un enfrentamiento clave en la lucha por la independencia de México. Conoce los detalles de la batalla y su impacto en la historia del país.
Leer másDescubre cómo es Leo en el amor, sus fortalezas, debilidades emocionales, compatibilidades y claves para conquistar a este signo apasionado del zodiaco.
Leer másTecnología > Inteligencia Artificial
Conoce los principales beneficios y riesgos de la inteligencia artificial en la vida diaria. Descubre cómo la IA mejora nuestras actividades y los desafíos que plantea.
Leer másEconomía > Emprendimiento Digital #México
Descubre 10 ideas de negocios rentables en México para 2025 que requieren poca inversión inicial y tienen alto potencial de ganancias.
Leer másDurante siglos, la gente no dormía 8 horas seguidas. Descubre cómo la humanidad pasó del primer sueño y la vigilia nocturna al sueño continuo moderno, y por qué este antiguo ritual nocturno desapareció.
Leer másAprende cómo un sistema de citas online puede ayudarte a organizar tu clínica veterinaria, reducir llamadas telefónicas y mejorar la experiencia de tus clientes.
Leer másDescubre cómo se manifiesta Géminis en la vida espiritual: su búsqueda de conocimiento, conexión interior y apertura a nuevas experiencias espirituales.
Leer másAprende las mejores estrategias para crecer en TikTok en 2025. Descubre cómo aumentar seguidores, conseguir más vistas y destacar en la plataforma.
Leer másDescubre la vida y legado de Miguel Grau, héroe naval peruano que dejó una marca indeleble en la historia del Perú. Infancia, carrera naval y liderazgo.
Leer másDescubre cómo es Tauro en la amistad: sus cualidades como amigo, sus desafíos y consejos para fortalecer la relación con este signo de Tierra.
Leer másEconomía > Emprendimiento Digital
Descubre cómo evoluciona el teletrabajo en 2025, las nuevas tendencias laborales, beneficios para empleados y empresas, y los principales retos de esta modalidad.
Leer másDescubre cómo es Aries en la salud: energía, puntos débiles, consejos prácticos y recomendaciones para mantener el equilibrio físico y emocional.
Leer másDeportes > Tendencias deportivas
Descubre cuáles son los deportes que lideran la pasión de millones en Latinoamérica en 2025. Desde el fútbol hasta disciplinas emergentes, te contamos qué mueve a los fanáticos
Leer másDescubre cómo Aries influye en la vida espiritual: su energía, retos kármicos y el camino hacia el equilibrio interior.
Leer másDescubre la compatibilidad completa de Virgo con los 12 signos del zodiaco: amor, amistad y energía zodiacal. Una guía detallada para entender cómo se relaciona Virgo con cada signo en 2025.
Leer másDescubre qué es Tartaria, la misteriosa civilización que aparece en mapas antiguos y que muchos creen fue eliminada de la historia oficial. ¿Realidad o mito moderno?
Leer másDescubre todas las películas que ya son de dominio público hasta 2025. Incluye lista completa con sinopsis, géneros y qué puedes hacer con ellas legalmente
Leer másDescubre la historia de Ted Bundy, uno de los asesinos seriales más infames de la historia. Conocido por su carisma y brutalidad, Bundy cometió crímenes atroces en los años 70, dejando una huella imborrable en la criminología. Conoce sus métodos, víctimas, captura y legado oscuro.
Leer másDescubre la historia de Francisco Bolognesi y la Batalla de Arica, un hito en la defensa del Perú. Conoce su legado patriótico y la importancia de este evento histórico.
Leer másDescubre las correrías del Huáscar, un monitor naval que interrumpió líneas de abastecimiento y atacó puertos durante la Guerra del Pacífico. Conoce su repercusión internacional
Leer másTecnología > Inteligencia Artificial
Descubre las herramientas de inteligencia artificial gratis más útiles para 2025, desde generadores de texto hasta creadores de imágenes y asistentes de productividad.
Leer másDescubre el heroísmo de Miguel Grau y Arturo Prat en el Combate Naval de Iquique. Conoce el desarrollo del combate y sus consecuencias para Chile y Perú.
Leer másDescubre cómo se libró la Batalla de Miraflores, su importancia en la defensa peruana y el resultado final que cambió el curso de la historia. ¡Entérate aquí!
Leer másDescubre las ventajas de usar un software veterinario en la nube para gestionar tu clínica de forma eficiente y ofrecer citas online a tus clientes.
Leer másescubre cómo influye el signo Leo en la salud física, mental y emocional. Conoce sus puntos débiles, fortalezas y consejos para mantener equilibrio y vitalidad.
Leer másEntretenimiento Digital > Streamers Peruanos
Conoce la historia real de Marx Loayza, más conocido como Glogloking. De sus orígenes humildes en Arequipa a convertirse en uno de los streamers peruanos más populares.
Leer más