Eliminar valores anidados en Laravel con la función data_forget

  • Publicado el 10 enero, 2025
  • Palabras: 58

¿Necesita eliminar valores de arrays muy anidados? La función data_forget de Laravel ofrece una forma conveniente de gestionar la eliminación de datos anidados mediante una simple notación de puntos.

Eliminar valores anidados en Laravel con la función data_forget

#Uso básico

La función data_forget elimina un valor dentro de un array o un objeto anidado utilizando la notación "punto":

 

$data = ['products' => ['desk' => ['price' => 100]]];

data_forget($data, 'products.desk.price');
// Result: ['products' => ['desk' => []]]

 

#Uso de comodines

Manejar múltiples elementos con notación de asterisco:

 

$data = [
    'products' => [
        ['name' => 'Desk 1', 'price' => 100],
        ['name' => 'Desk 2', 'price' => 150],
    ],
];

data_forget($data, 'products.*.price');
// Result: ['products' => [['name' => 'Desk 1'], ['name' => 'Desk 2']]]

 

#Ejemplo práctico

A continuación se explica cómo podría usarlo en un servicio de limpieza de datos:

 

class DataSanitizer
{
    public function cleanUserData(array $userData)
    {
        // Remove sensitive information
        data_forget($userData, 'payment.*.card_number');
        data_forget($userData, 'payment.*.cvv');
        
        // Remove temporary processing data
        data_forget($userData, 'orders.*.processing_metadata');
        
        // Clear cached calculations
        data_forget($userData, 'statistics.*.calculated_values');
        
        return $userData;
    }

    public function prepareApiResponse(array $data)
    {
        // Remove internal fields
        data_forget($data, 'items.*.internal_id');
        data_forget($data, 'items.*.stock_location');
        
        // Remove null values
        foreach ($data['items'] ?? [] as $key => $item) {
            if (isset($item['variants'])) {
                data_forget($data, "items.{$key}.variants.*.null_fields");
            }
        }
        
        return $data;
    }
}

 

La función data_forget simplifica el proceso de eliminación de datos específicos de estructuras anidadas complejas.

Antonio Jenaro
Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión