Maison >développement back-end >tutoriel php >Comment rechercher efficacement une valeur dans un tableau multidimensionnel PHP ?

Comment rechercher efficacement une valeur dans un tableau multidimensionnel PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-20 05:11:13134parcourir

How to Efficiently Search for a Value in a PHP Multidimensional Array?

Recherche de tableaux multidimensionnels PHP par valeur

Lors de la manipulation de tableaux multidimensionnels, il est souvent nécessaire de localiser une clé spécifique en fonction d'une valeur correspondante. Cette tâche peut être accomplie à l'aide de diverses techniques en PHP.

Option 1 : Utilisation de array_search() et array_column()

Pour utiliser cette approche, vous devez vous assurer que vous utilisez PHP version 5.5.0 ou plus haut.

$key = array_search('breville-one-touch-tea-maker-BTM800XL', array_column($products, 'slug'));

Explication :

  • array_column() extrait une colonne de clés du tableau. Dans ce cas, il récupère les valeurs 'slug' dans un nouveau tableau.
  • array_search() recherche la valeur souhaitée ("breville-one-touch-tea-maker-BTM800XL") dans le tableau renvoyé par array_column(), fournissant la clé correspondante si elle est trouvée.

Option 2 : Fonction personnalisée avec array_walk_recursive()

function array_search_multidim($array, $column, $key) {
    $result = null;
    array_walk_recursive($array, function ($value, $index) use ($column, $key, &$result) {
        if ($index === $column && $value === $key) {
            $result = $index;
        }
    });
    return $result;
}
$key = array_search_multidim($products, 'slug', 'breville-one-touch-tea-maker-BTM800XL');

Explication :

  • array_walk_recursive() parcourt tous les éléments du tableau, y compris ceux des niveaux imbriqués.
  • La fonction de fermeture vérifie l'index de chaque valeur ($index) par rapport à la colonne spécifiée ($column) et compare sa valeur ($value) à la clé souhaitée ($key).
  • Si une correspondance est trouvée, il attribue l'index ($index) de l'élément correspondant à la variable $result.

Considérations sur les performances

L'approche array_search() et array_column() offre généralement de meilleures performances par rapport à la méthode array_walk_recursive(). Cependant, les deux techniques conviennent à la plupart des applications et le choix spécifique dépendra des exigences individuelles.

Notes supplémentaires

  • Ces méthodes nécessitent que la clé existe au même niveau que le valeur recherchée.
  • Ils recherchent des correspondances de valeurs exactes ; les correspondances partielles ne sont pas prises en charge.

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