Aunque puedes crear helpers personalizados, Laravel nos ofrece varias clases de ayuda para modificar ciertos elementos o tipos de datos dentro de nuestras aplicaciones. En este tutorial te enseñaremos algunos helpers que se encargan del manejo de los arreglos (arrays).

Arr::add()

El método Arr::add agrega valores a un arreglo. Ejemplo:

<?php

$info = ['nombre' => 'Rafael'];
$info = Arr::add($info, 'numero', 6);

print_r($info);
// ['nombre' => 'Rafael', 'numero' => 6]

Arr::collapse()

Este método permite unir dos arreglos, por ejemplo:

<?php

$nombres   = ['nombre' => 'Rafael'];
$telefonos = ['telefono' => '5353647'];
$datos = Arr::collapse([$nombres, $telefonos]);

print_r($datos);
// ['nombre' => 'Rafael', 'telefono' => '5353647']

Arr::divide()

El método Arr::divide retorna dos arreglos, uno va a contener todas las llaves y el otro tendrá todos los valores del arreglo:

<?php

[$keys, $values] = Arr::divide(['nombre' => 'Rafael']);

print_r($keys);
// ['nombre'] 

print_r($values);
// ['Rafael']

Arr::dot()

El método Arr::dot cambia los arreglos multidimensionales en arreglos simples, utilizando un punto «.» para indicar el nivel de profundidad de los valores, ejemplo:

<?php

$datos = Arr::dot(['carro' => ['marca' => 'honda', 'color' => 'negro']]);

print_r($datos);    
// ['carro.marca' => 'honda', 'carro.color' => 'negro']

Arr::except()

El método Arr::except nos devuelve los valores del arreglo exceptuando el valor de la llave que pasamos como parámetro:

<?php

$datos = ['marca' => 'honda','color' => 'negro'];
$filtro = Arr::except($datos, ['color']);

print_r($filtro);    
// ['marca' => 'honda']

Arr::first()

El método Arr::first regresa el primer elemento de un array que cumpla una condición dada, por ejemplo:

<?php

$digits = [34, 56, 75];

$first = Arr::first($digits, function ($value, $key ) {
    return $value >= 40;
});

print_r($first);
// 56

Un valor por defecto se puede pasar como tercer parámetro, el cual se devolverá si ninguno de los valores de arreglo pasa la condición dada.

Arr::flatten()

El método Arr::flatten convierte un arreglo multidimensional en uno simple, ejemplo:

<?php

$info = ['nombre' => 'Rafael', 'Carro' => ['Audi', 'Azul']];
$datos = Arr::flatten($info);

print_r($datos);
// ['Rafael', 'Audi', 'Azul']

Arr::forget()

El método Arr::forget elimina una llave dada, se utiliza la notación de puntos para identificar la profundidad del arreglo. Como primer parámetro recibe el arreglo y como segundo parámetro la llave que queremos olvidar, por ejemplo:

<?php

$info = ['users' => ['admin' => 'Rafael', 'editor' => 'Luis']];
Arr::forget($info, 'users.editor');

print_r($info);
// ['users' => ['admin' => 'Rafael']]

Arr::get()

El método Arr::get nos devuelve un valor deseado. Recibe como primer parámetro el arreglo, y como segundo parámetro, la llave del valor que queramos devolver (utiliza la notación de puntos para identificar la profundidad del arreglo), por ejemplo:

<?php

$info = ['users' => ['admin' => 'Rafael', 'editor' => 'Luis']];
$admin = Arr::get($info, 'users.admin');

print_r($admin);
// Rafael

Se puede pasar un valor por defecto como tercer parámetro, en caso que no exista la llave que se está buscando.

Arr::has()

Este método comprueba si existe un determinado elemento y retorna un valor booleano (utiliza la notación de puntos para identificar la profundidad del arreglo), por ejemplo:

<?php

$info = ['users' => ['admin' => 'Rafael', 'editor' => 'Luis']];
$admin = Arr::has($info, 'users.admin');
    
print_r($admin);
// 1

Arr::only()

El método Arr::only solo nos devolverá aquellas llaves que especifiquemos dentro de un arreglo, ejemplo:

<?php

$info = ['nombre' => 'Laptop', 'precio' => 100, 'unidades' => 10];
$datos = Arr::only($info, ['nombre', 'unidades']);

print_r($datos);
// ['nombre' => 'Laptop', 'unidades' => 10]

Arr::pluck()

Este método devuelve un arreglo formado por los valores de una llave dada perteneciente a otro arreglo, se puede utilizar la notación de puntos. Por ejemplo:

<?php

$info = [
    ['carro' => ['id' => 1, 'color' => 'Azul']],
    ['carro' => ['id' => 2, 'color' => 'Verde']],
];
$color = Arr::pluck($info, 'carro.color');

print_r($color);
// ['Azul', 'Verde']

Arr::prepend()

Agrega un item al principio del arreglo, ejemplo:

<?php

$numeros = ['uno', 'dos', 'tres', 'cuatro'];
$numeros = Arr::prepend($numeros, 'cero');

print_r($numeros);
// ['cero', 'uno', 'dos', 'tres', 'cuatro']

Arr::pull()

Este método toma el valor de una llave determinada y luego la borra del arreglo, ejemplo:

<?php

$info = ['mascota' => 'perro', 'instrumento' => 'guitarra'];
$mascota = Arr::pull($info, 'mascota');

print_r($mascota);
// ['perro']

print_r($info);
// ['instrumento' => 'guitarra']

Arr::set()

El método Arr::set se utiliza para cambiar el valor de un llave determinada en un arreglo, ejemplo:

<?php

$info = ['productos' => ['carro' => ['color' => 'azul']]];
Arr::set($info, 'productos.carro.color', 'rosa');

print_r($info);
// ['productos' => ['carro' => ['color' => 'rosa']]]

Arr::sort()

El método Arr::sort ordena un arreglo por sus valores. Ejemplo:

<?php

$data = ['Moises', 'Ana', 'Erick'];
$orden = Arr::sort($data);

print_r($orden);
// ['Ana', 'Erick', 'Moises']

Arr::where()

El método Arr::where devuelve un arreglo con los elementos que pasen el filtro dado, como, por ejemplo, retornar los valores del arreglo que sean de tipo string:

<?php

$array = [100, '200', 300, '400', 500];

$filtered = Arr::where($array, function ($value, $key) {
    return is_string($value);
});

print_r($filtered);
// [1 => '200', 3 => '400']

head()

Esta función regresa el primer elemento de un arreglo, ejemplo:

<?php

$array = [100, 200, 300];
$primero = head($array);
    
print_r($primero);
// 100

last()

Esta función regresa el último elemento de un arreglo, ejemplo:

<?php

$array = [100, 200, 300];
$ultimo = last($array);

print_r($ultimo);
// 300

Material relacionado

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.