PHP Modermo (Arrays)

PHP Modermo (Arrays)

  • Ruben
Exelentes fucniones o trucos para php, que se han ido agregando en las ultimas versiones de PHP, en este articulo veremos los arreglos.

Arreglos

  • Desestructuración y operadores Rest / Spread en PHP

Permite extraer valores de un array y asignarlos a variables de forma directa.
$array = [1, 2, 3];
[$a, $b, $c] = $array;

También se pueden omitir elementos:
[, , $c] = $array; // $c = 3

Y desestructurar por claves en arrays asociativos:
$array = ['a' => 1, 'b' => 2, 'c' => 3];
['c' => $c, 'a' => $a] = $array;

Ejemplos practicos:

Ejemplo 1: Obtener datos de una consulta o API (Útil cuando recibes datos en un array ordenado.)

$user = ['Juan', 'Perez', 30];

[$nombre, $apellido, $edad] = $user;

Ejemplo 2: Ignorar valores que no necesitas
$config = ['localhost', 'root', 'secret', 'test_db'];

[, $usuario, , $baseDatos] = $config;

Ejemplo 3: Arrays asociativos (muy común en JSON)
$response = [
    'status' => 200,
    'message' => 'OK',
    'data' => ['id' => 5, 'name' => 'Producto']
];

['status' => $status, 'data' => $data] = $response;

  • Operador Spread (...)
Permite expandir un array en argumentos de una función.
foo(...$array);

También se puede usar para unir arrays (PHP 7.4+):
$result = [...$a, ...$b];

Ejemplos practicos:

Ejemplo 1: Pasar parámetros a una función (Limpio y legible, sin usar call_user_func_array)
$coords = [10, 20];

function mover($x, $y) {
    echo "Mover a ($x, $y)";
}

mover(...$coords);

Ejemplo 2:  Unir listas (arrays)
$frontend = ['HTML', 'CSS'];
$backend = ['PHP', 'MySQL'];

$skills = [...$frontend, ...$backend];

  • Operador Rest (funciones variádicas)
Permite recoger múltiples argumentos en un solo parámetro.
function foo($primero, ...$otros) {
    // $otros es un array
}

Los parámetros Rest pueden tener tipado (PHP 7.0+):
function foo($primero, string ...$otros) {}

Ejemplos practicos:

Ejemplo 1: Carrito de compras (Cuando no sabes cuántos valores recibirás.)
function totalCarrito(float ...$precios): float {
    return array_sum($precios);
}

$total = totalCarrito(10.5, 20, 5.75);

Ejemplo 2:  Validación de roles
function tieneRol(string $usuario, string ...$roles): bool {
    return in_array($usuario, $roles);
}

tieneRol('admin', 'admin', 'editor', 'user');

Ejemplo 3: Ejemplo combinado (Rest + Spread) (Caso real: impuestos, envíos, extras.)
$extras = [5, 10];

function precioFinal(float $base, float ...$extras): float {
    return $base + array_sum($extras);
}

echo precioFinal(100, ...$extras);


Resumen rápido
  • Desestructuración → extraer datos fácilmente
  • Spread → expandir arrays
  • Rest → recoger múltiples argumentos

En proximos articulos veremos nuevas funciones de PHP moderno.


  • PHP
Deja un comentario: