Comment rechercher dans un tableau associatif PHP – Conseils rapides

WBOY
Libérer: 2024-08-15 18:32:37
original
659 Les gens l'ont consulté

Les tableaux associatifs sont une structure de données fondamentale en PHP, permettant aux développeurs de stocker des paires clé-valeur. Ils sont polyvalents et couramment utilisés pour représenter des données structurées. La recherche d'éléments spécifiques dans un tableau associatif PHP est une tâche courante. Mais la plupart des fonctions natives disponibles en PHP fonctionnent très bien avec des tableaux simples.

Pour cette raison, nous devons souvent trouver des combinaisons de fonctions qui nous permettent de faire les mêmes choses sur des tableaux associatifs. Peut-être sans erreurs de manque de mémoire ?.

Dans ce tutoriel, nous explorerons diverses méthodes et techniques pour rechercher des valeurs dans un tableau associatif PHP.

Recherche d'une clé dans un tableau associatif

La fonction array_key_exists() vérifie si une clé spécifique existe dans un tableau associatif. Il renvoie vrai si la clé est trouvée et faux sinon.

$fruits = [ 'apple' => 'red', 'banana' => 'yellow', ]; if (array_key_exists('banana', $fruits)) { echo "The key 'banana' exists in the array."; } else { echo "The key 'banana' does not exist in the array."; }
Copier après la connexion

Recherche par valeur dans un tableau associatif

Utilisation de array_search() et in_array()

La fonction array_search() recherche une valeur dans un tableau associatif et renvoie la clé correspondante si elle est trouvée, ou false si elle n'est pas trouvée.

$colors = [ 'apple' => 'red', 'banana' => 'yellow', ]; echo array_search('yellow', $colors); // Print "banana"
Copier après la connexion

Vous pouvez également utiliser des tableaux avec des données plus complexes comme valeur :

$colors = [ 'apple' => ['red'], 'banana' => 'yellow', ]; echo array_search(['red'], $colors); // Print "apple"
Copier après la connexion

Dans ce cas je vous propose d'utiliser le mode de comparaison stricte. Il peut être demandé de passer un troisième paramètre booléen à array_search :

echo array_search(['red'], $colors, true);
Copier après la connexion

Similaire à array_search(), la fonction in_array renvoie simplement un indicateur booléen au lieu de la clé de l'élément.

/* * It also supports strict mode comparison, useful for working with structured data as a value. */ echo in_array(['red'], $colors, true); // Return "true"
Copier après la connexion

Utiliser une boucle foreach

Vous pouvez parcourir le tableau associatif à l'aide d'une boucle foreach et rechercher manuellement une valeur spécifique. Ceci est utile lorsque vous devez effectuer une comparaison ou une manipulation complexe, car la boucle réside dans la même portée du tableau, vous avez donc accès à toutes les données de la boucle.

$targetValue = 'yellow'; foreach ($colors as $key => $value) { if ($value === $targetValue) { echo "The value {$targetValue} is associated with the key {$key}."; break; // Optional: Stop searching after finding the occurrence. } }
Copier après la connexion

Utilisation de array_filter()

La fonction array_filter() peut être utilisée pour filtrer le tableau et renvoyer uniquement les éléments qui réussissent un rappel de test.

$colors = [ 'apple' => 'red', 'banana' => 'yellow', ]; $filteredArray = array_filter($colors, function ($value) { return $value === 'red'; }); /* * It contains just one element: ['apple' => 'red'] * ‘banana’ was filtered out. */ var_dump($filteredArray);
Copier après la connexion

Benchmarks de performances entre les fonctions de tableau PHP et foreach

Si la performance est l'une de vos préoccupations, vous trouverez certainement cette section de l'article intéressante.

J'ai créé un script pour effectuer une opération simple sur un tableau de 200 000 éléments en utilisant array_map et la boucle foreach. J'ai utilisé le package Inspector pour suivre les performances des deux instructions. Vous pouvez jouer avec le code dans ce bac à sable : https://phpsandbox.io/e/x/5titt

$data = range(1, 200000); $inspector->addSegment(function () use ($data) { array_map(fn($item) => $item * 3, $data); }, 'array_map'); $data = range(1, 200000); $inspector->addSegment(function () use ($data) { foreach ($data as $item) { $data[$item] = $item * 3; } }, 'foreach');
Copier après la connexion

Des dizaines d'exécutions montrent que foreach est systématiquement meilleur que array_map d'environ 10 %.

How to Search in a PHP Associative Array – Fast tips

Mais ce résultat peut beaucoup changer en fonction de l'environnement contextuel. Si vous exécutez l'extrait dans le bac à sable lié ci-dessus, vous découvrirez que foreach est 10 fois plus efficace que array_map. Vous pouvez copier le script dans votre environnement local et faire quelques benchmarks par vous-même.

Quoi qu'il en soit, la raison pour laquelle foreach est généralement plus efficace que array_map est qu'il n'implique pas l'utilisation d'un rappel. Il y a plus de surcharge à appeler une fonction plutôt qu'à utiliser le tableau directement dans la même portée. Pour cette raison, array_map perd un peu plus de temps à chaque itération. Mais cela n’est visible que pour des ensembles de données plus volumineux. Plus le tableau est petit, plus l'écart est insignifiant.

Nouveau comme inspecteur ? Surveillez votre candidature gratuitement

Inspector est un outil de surveillance de l'exécution de code spécialement conçu pour les développeurs de logiciels. Vous n'avez pas besoin d'installer quoi que ce soit au niveau du serveur, installez simplement lepackage composeret vous êtes prêt à partir.

Contrairement à d'autres plates-formes complexes tout-en-un, Inspector est super simple et compatible PHP. Vous pouvez essayer notre package Laravel ou Symfony.

Si vous recherchez une automatisation efficace, des informations approfondies et la possibilité de transférer des alertes et des notifications dans votre environnement de messagerie, essayez Inspector gratuitement. Enregistrez votre compte.

Ou apprenez-en plus sur le site : https://inspector.dev

How to Search in a PHP Associative Array – Fast tips

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:dev.to
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 téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!