Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
php

Eliminar datos de un array desde una whitelist o blacklist

En esta entrada vamos a ver cómo eliminar datos de un array bien desde una lista blanca o whitelist, bien desde una lista negra o blacklist.

Una lista blanca no es más que un listado de datos o entidades que queremos. Por el contrario una lista negra es un listado de datos o entidades que no queremos.

El manejo de datos en arrays es muy común, y en muchas ocasiones necesitamos hacer un filtro sobre los elementos del array para quedarnos con lo que queremos o eliminar lo que no necesitamos.

Como no hay mejor manera que verlo con un ejemplo (en esta ocasión dos), vamos a ver cómo quedarnos con cierta información de un array a través de una lista blanca y una lista negra.

 

Eliminar datos de un array desde una whitelist

El primero de los casos que vamos a ver es filtrar un array de datos que tengamos con una lista blanca. Es decir, del array de datos que tenemos nos vamos a quedar única y exclusivamente con los elementos definidos en nuestra whitelist.

Utilizamos la función de PHP array_intersect_key que calcula la intersección de los dos arrays ($data y $whitelist) usando sus claves para la comparación.

En nuestro ejemplo, devolverá un array que contendrá todos los valores de $data que están presentes en $whitelist. Este segundo array lo pasamos por la función de array_flip, que intercambia todas las claves de un array con sus valores asociados.

Por aclarar lo del array_flip, es porque nuestro array $whitelist al no especificar las claves, por defecto son numéricas, es decir, equivale a:

Y lo que conseguimos es intercambiar las claves con los valores, y así filtrar el array de datos como queremos, dándonos como resultado el siguiente array:

 

Eliminar datos de un array desde una blacklist

El segundo de los casos es precisamente lo contrario, cómo filtrar un array de datos que tengamos con una lista negra. Es decir, del array de datos que tenemos vamos a eliminar única y exclusivamente los elementos definidos en nuestra blacklist.

En este caso utilizamos la función de PHP array_diff_key que calcula la diferencia entre arrays ($data y $blacklist) usando sus claves para la comparación.

En nuestro ejemplo, compara las claves de $data con las claves de $blacklist. y devuelve la diferencia. Este segundo array lo pasamos por la función de array_flip, para hacer el filtrado con las keys del array de lista negra.

De este modo obtendremos un array con los siguientes datos:

Puede que también te interese

WP-CLI Parte 9, paquetes de comandos adicionales
WP-CLI Parte 9, paquetes de comandos adicionales
1. Instalación y primeros pasos 2. Instalando WordPress y primeros pasos y configuraciones 3. Trabajando con posts 4. Trabajando con usuarios 5. Trabajando con la…
Reduce el HTML de tu WordPress para bajar el peso de la página
Reduce el HTML de tu WordPress para bajar el peso de la página
La parte pública de una web o expresado de otro modo, lo que el navegador pinta, no es más que un documento HTML, donde encontraremos…
¿No funcionan los shortcodes en tus widgets? Aprende cómo hacerlos funcionar
¿No funcionan los shortcodes en tus widgets? Aprende cómo hacerlos funcionar
En la entrada anterior Shortcodes: ¿Qué son y cómo crearlos? vimos que son los shortcodes y aprendimos a crearlos desde cero según nuestras necesidades. En ocasiones…
Seguridad WordPress: cambiar el prefijo wp_ de la base de datos
Seguridad WordPress: cambiar el prefijo wp_ de la base de datos
Siguiendo la máxima de no dar facilidades a un posible atacante, una recomendación antes de instalar un WordPress es cambiar el prefijo de la base…