"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment rechercher dans un tableau associatif PHP – Conseils rapides

Comment rechercher dans un tableau associatif PHP – Conseils rapides

Publié le 2024-11-07
Parcourir:318

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 didacticiel, 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.";
}

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"

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 suggère 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);

Semblable à 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"

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 se trouve 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.
    }
}

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

Benchmarks de performances entre les fonctions de tableau PHP et foreach

Si les performances sont 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 %.

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 tests 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 parmi les inspecteurs ? 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 le package composer et vous êtes prêt à partir.

Contrairement à d'autres plates-formes complexes tout-en-un, Inspector est extrêmement simple et compatible avec 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

Déclaration de sortie Cet article est reproduit sur : https://dev.to/inspector/how-to-search-in-a-php-associative-array-fast-tips-26o6?1 En cas de violation, veuillez contacter study_golang@163 .com pour le supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3