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
Libérer: 2024-12-20 05:11:13
original
215 Les gens l'ont consulté

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.

1

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

Copier après la connexion

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()

1

2

3

4

5

6

7

8

9

10

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');

Copier après la connexion

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 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