Maison > développement back-end > tutoriel php > Comment puis-je conserver les clés lors du filtrage d'un tableau en PHP ?

Comment puis-je conserver les clés lors du filtrage d'un tableau en PHP ?

Mary-Kate Olsen
Libérer: 2024-12-17 07:54:25
original
742 Les gens l'ont consulté

How Can I Preserve Keys When Filtering an Array in PHP?

Préserver les clés dans le filtrage de tableau à l'aide de array_intersect_key et array_flip

En PHP, la fonction array_filter() peut être utilisée pour supprimer des éléments d'un tableau basé sur une fonction de rappel personnalisée. Cependant, le rappel ne reçoit que les valeurs du tableau, pas les clés.

Considérez le scénario dans lequel vous disposez d'un tableau associatif ($my_array) et d'une liste de clés autorisées dans un tableau indexé ($allowed). L'objectif est de filtrer $my_array et de supprimer toutes les clés qui ne sont pas présentes dans $allowed.

L'approche la plus efficace consiste à exploiter les fonctions array_intersect_key et array_flip. La fonction array_intersect_key filtre les paires clé-valeur d'un tableau en fonction des clés présentes dans un autre tableau. La fonction array_flip inverse les clés et les valeurs d'un tableau, créant ainsi un mappage entre les valeurs et les clés.

En combinant ces fonctions, vous pouvez obtenir le filtrage souhaité :

$filtered_array = array_intersect_key($my_array, array_flip($allowed));
Copier après la connexion

Ce code créera un nouveau tableau ($filtered_array) qui contient uniquement les paires clé-valeur de $my_array où les clés sont présentes dans $allowed. Le résultat sera identique au résultat souhaité :

array(
  ["foo"] => 1
)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal