Maison >développement back-end >tutoriel php >Comment filtrer un tableau associatif en fonction des clés trouvées dans un tableau indexé ?

Comment filtrer un tableau associatif en fonction des clés trouvées dans un tableau indexé ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-24 02:44:14585parcourir

How to Filter an Associative Array Based on Keys Found in an Indexed Array?

Vérification des clés de tableau associatif par rapport aux valeurs de tableau indexées

Filtrer un tableau associatif en comparant ses clés avec les valeurs d'un tableau indexé peut être un défi , car la fonction de rappel dans array_filter() ne donne accès qu'aux valeurs. Cependant, il existe une solution utilisant une combinaison de array_intersect_key et array_flip.

Considérez le scénario suivant :

$my_array = ["foo" => 1, "hello" => "world"];
$allowed = ["foo", "bar"];

Notre objectif est d'exclure toutes les clés de $my_array qui ne se trouvent pas dans $allowed , ce qui donne le résultat souhaité :

$my_array = ["foo" => 1];

Solution avec array_intersect_key et array_flip :

  1. Utilisez array_intersect_key pour comparer les clés de $my_array avec les valeurs de $allowed. Ceci est rendu possible par la fonction array_flip, qui échange les clés et les valeurs d'un tableau.
  2. Le tableau résultant inclura uniquement les clés de $my_array qui sont également présentes dans $allowed.
$filtered_array = array_intersect_key($my_array, array_flip($allowed));

Sortie :

var_dump($filtered_array);

array(1) {
  ["foo"]=>
  int(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!

Déclaration:
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