Maison > Article > développement back-end > Comment rechercher dans un tableau associatif PHP – Conseils rapides
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.
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."; }
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"
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"
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);
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"
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. } }
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);
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');
Des dizaines d'exécutions montrent que foreach est systématiquement meilleur que array_map d'environ 10 %.
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.
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 le package composer et 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
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!