Tema 10

Arrays y Funciones Útiles en PHP

Domina el manejo de arrays indexados, asociativos y multidimensionales, junto con las funciones nativas indispensables para transformar y filtrar datos.

Tipos de Arrays en PHP

Un array en PHP es una estructura de datos ordenada y flexible que asocia valores con claves. PHP soporta tres tipos fundamentales:

  • Arrays Indexados: Claves numéricas automáticas comenzando desde 0.
  • Arrays Asociativos: Pares clave-valor personalizados con claves de tipo texto ("nombre" => "Carlos").
  • Arrays Multidimensionales: Arrays que contienen otros arrays en su interior (útil para matrices o registros de base de datos).

Funciones Nativas Indispensables

Función Descripción Ejemplo
count($arr) Retorna el número de elementos del array. count([1, 2, 3]) // 3
in_array($val, $arr) Comprueba si un valor existe en el array. in_array("PHP", $lenguajes)
array_key_exists($k, $arr) Verifica si una clave existe en un array asociativo. array_key_exists("email", $usuario)
array_filter($arr, fn) Filtra elementos evaluando una función booleana. array_filter($nums, fn($n) => $n > 5)
array_map(fn, $arr) Aplica una función a cada elemento retornando un nuevo array. array_map(fn($x) => $x * 2, $arr)
sort() / asort() Ordena elementos (asort preserva las claves asociativas). asort($precios)

⚡ Ejemplo de Transformación de Arrays en PHP

Filtra y calcula totales sobre una lista de productos en una tienda de Kilopolis:

index.html
Solo lectura
<!DOCTYPE html>
<html>
<body>

<h2>Manejo Profesional de Arrays en PHP 8.3</h2>

<?php
// 1. Array asociativo multidimensional (catálogo de productos)
$inventario = [
    ["id" => 1, "nombre" => "Teclado Mecánico", "precio" => 85.00, "categoria" => "Hardware", "stock" => 12],
    ["id" => 2, "nombre" => "Monitor 4K 27\"",  "precio" => 320.00, "categoria" => "Hardware", "stock" => 4],
    ["id" => 3, "nombre" => "Curso PHP Fullstack", "precio" => 49.00, "categoria" => "Educación", "stock" => 999],
    ["id" => 4, "nombre" => "Mouse Ergonómico", "precio" => 45.00, "categoria" => "Hardware", "stock" => 0],
    ["id" => 5, "nombre" => "Suscripción Kilopolis PRO", "precio" => 19.00, "categoria" => "Educación", "stock" => 999],
];

echo "<p>Total de productos registrados: <strong>" . count($inventario) . "</strong></p>";

// 2. Filtrar productos con stock disponible usando array_filter
$disponibles = array_filter($inventario, fn(array $item): bool => $item['stock'] > 0);

echo "<h4>Productos Disponibles en Stock (" . count($disponibles) . "):</h4>";
echo "<ul>";
foreach ($disponibles as $prod) {
    echo "<li><strong>{$prod['nombre']}</strong> — \${$prod['precio']} USD (Stock: {$prod['stock']})</li>";
}
echo "</ul>";

// 3. Extraer solo los nombres con array_column
$nombres = array_column($inventario, 'nombre');
echo "<p>Lista plana de nombres: <em>" . implode(" | ", $nombres) . "</em></p>";

// 4. Calcular el valor total del inventario con array_reduce
$valorTotal = array_reduce(
    $disponibles,
    fn(float $acumulado, array $item): float => $acumulado + ($item['precio'] * min($item['stock'], 20)),
    0.0
);

echo "<p style='padding:10px; background:#f0fdf4; border-left:4px solid #16a34a;'>
    Valorización estimada del stock disponible: <strong>$" . number_format($valorTotal, 2) . " USD</strong>
</p>";

// 5. Operador Spread (...) para combinar arrays (PHP 7.4+)
$hardwareBase = ["Mouse", "Teclado"];
$hardwarePro  = ["Webcam 4K", "Micrófono USB"];
$kitCompleto  = [...$hardwareBase, "Auriculares con cancelador", ...$hardwarePro];

echo "<h4>Kit Desarrollador combinado con spread operator (...):</h4>";
echo "<ol>";
foreach ($kitCompleto as $art) {
    echo "<li>{$art}</li>";
}
echo "</ol>";
?>

</body>
</html>
Pruébalo tú mismo » Se abre en una nueva pestaña con ejecución en vivo
🦉
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.

🚀 ¿Quieres dominar Manual Completo de PHP y crear proyectos reales?

Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.

🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.