Borrado elegante de elementos de un array.

Hoy estaba documentándome en WordPress, encontré la pagina de Pablo Lopez donde aprendi como modificar arrays basados en blacklist y whitelist, al comienzo pensé es mejor hacer un unset(), pero me pareció mucho más elegante esta forma.

Lo primero es tener un arreglo, obvio. el concepto es tener un whitelist y un blacklist


array_intersect_key" El array_intersect_key () se utiliza para crear una matriz que contiene claves y valores de la primera matriz cuyas claves (es decir, de la primera matriz) están presentes en todas las demás matrices."

array_diff_key" La función array_diff_key () se usa para comparar las claves de una matriz con las claves de otra matriz y devuelve la diferencia. Esta función es como array_diff () excepto que la comparación se realiza en las claves en lugar de los valores." 


<?php
$data = [
'name' => 'John',
'surname' => 'Doe',
'age' => 33,
'gender' => 'male',
'address' => 'street',
'city' => 'Madrid',
'country' => 'Spain',
];

$whitelist = [
'name',
'surname',
'age',
'gender',
];

$result = array_intersect_key($data, array_flip($whitelist));
$data = [
'name' => 'John',
'surname' => 'Doe',
'age' => 33,
'gender' => 'male',
'address' => 'street',
'city' => 'Madrid',
'country' => 'Spain',
];

$blacklist = [
'address',
'city',
'country',
];
$result = array_diff_key($data, array_flip($blacklist));

Publicar un comentario

0 Comentarios