Maison >développement back-end >tutoriel php >Comment filtrer un tableau associatif en PHP en fonction des clés d'un tableau indexé ?
Filtrer un tableau associatif basé sur les clés d'un tableau indexé
En PHP, array_filter() fournit une méthode pratique pour filtrer les tableaux associatifs basés sur sur leurs valeurs. Cependant, cette fonction ne prend en compte que les valeurs, laissant les programmeurs chercher un moyen de filtrer les clés en fonction d'un ensemble de valeurs autorisées. Cette question répond à ce défi.
Étant donné un tableau associatif ($my_array) et un tableau indexé de clés autorisées ($allowed), la tâche consiste à supprimer toutes les clés de $my_array qui ne sont pas présentes dans $allowed. La sortie souhaitée est un $my_array contenant uniquement les paires clé-valeur où les clés se trouvent dans $allowed.
Solution :
La réponse suggère d'utiliser deux manipulations de tableau function:
En combinant ces deux fonctions, vous pouvez filtrer le tableau associatif comme suit :
$filtered_array = array_intersect_key($my_array, array_flip($allowed));
Ici, array_flip($allowed) crée un nouveau tableau où les valeurs de $allowed deviennent des clés et les clés deviennent des valeurs. array_intersect_key($my_array, ...) compare ensuite $my_array avec le tableau inversé, renvoyant un tableau avec uniquement les clés autorisées comme clés et leurs valeurs associées.
Exemple :
En utilisant l'exemple fourni :
$my_array = array("foo" => 1, "hello" => "world"); $allowed = array("foo", "bar");
Le $filtered_array résultant serait être :
array("foo" => 1);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!