Supprimer de la liste noire des clés de tableau en PHP
J'ai un tableau associatif de données et j'ai un tableau de clés je voudrais enlever du tableau (tout en gardant les autres touches dans l'ordre original -- pas que cela est susceptible d'être une contrainte).
Je suis à la recherche d'un un liner de php pour ce faire.
Je sais déjà comment je pourrais boucle à travers les tableaux, mais il semble qu'il devrait y avoir quelques array_map
avec unset
ou array_filter
solution juste à l'extérieur de mon emprise.
J'ai cherché un peu mais rien trouvé trop concis.
Pour être clair c'est le problème de le faire dans une ligne:
//have this example associative array of data
$data = array(
'blue' => 43,
'red' => 87,
'purple' => 130,
'green' => 12,
'yellow' => 31
);
//and this array of keys to remove
$bad_keys = array(
'purple',
'yellow'
);
//some one liner here and then $data will only have the keys blue, red, green
- Faire une fonction pour le faire:
remove_keys_from_array($array, $keys)
. Et regardez-le, il ne prend qu'une seule ligne! - Je sais, mais je parie qu'il y est une certaine façon d'utiliser les fonctions php pour le faire... mais juste assez, il ne prendra qu'une seule ligne
Vous devez vous connecter pour publier un commentaire.
$out =
array_diff_key
($data,
array_flip
($bad_keys));
Je me suis contenté de regarder à travers la liste de Les fonctions de tableau jusqu'à ce que j'ai trouvé celui que j'avais besoin (
_diff_key
).$bad_keys = array(0=>'purple',1=>'yellow')
donc les clés dans la array_flip sont 'violet','jaune'. D'où la diff_key œuvres. Neat. Grâce Kolink.$myArr = array(5, 25, 5, 30);
... ALORS ...$myArr =& array_diff_key($myArr, array_flip(array_keys($myArr, 5)));
La solution est en effet celle proposée par Niet de l'Obscurité Absol. J'aimerais donner une autre solution similaire pour n'importe qui qui est après chose de similaire, mais celui-ci utilise un liste blanche au lieu d'un liste noire:
Qui permettra de préserver les touches de
$whitelist
tableau et supprimer le reste.C'est une liste noire de fonction que j'ai créé pour les tableaux associatifs.