Maison > développement back-end > tutoriel php > `isset` est-il plus rapide que `in_array` pour vérifier les éléments du tableau ?

`isset` est-il plus rapide que `in_array` pour vérifier les éléments du tableau ?

Susan Sarandon
Libérer: 2024-11-11 11:02:03
original
456 Les gens l'ont consulté

Is `isset` Faster than `in_array` for Checking Array Elements?

Comparaison de vitesse : in_array vs isset

Lorsque vous travaillez avec de grands tableaux, il est crucial d'optimiser les performances du code. Qu'est-ce qui est le plus rapide : la fonction in_array ou la construction isset ?

in_array :

Cette fonction effectue une recherche linéaire, en parcourant le tableau pour trouver une correspondance. Il a une complexité temporelle de O(n), où n est la taille du tableau.

isset :

isset, en revanche, utilise un hachage recherche pour déterminer si une clé particulière existe dans un tableau associatif. Cela le rend beaucoup plus rapide que in_array, avec une complexité temporelle constante de O(1).

Test de performance :

Pour démontrer cette différence de vitesse, nous pouvons effectuer un benchmark :

$a = array();
for ($i = 0; $i < 10000; ++$i) {
    $v = rand(1, 1000000);
    $a[$v] = $v;
}

$start = microtime(true);

for ($i = 0; $i < 10000; ++$i) {
    isset($a[rand(1, 1000000)]);
}

$total_time = microtime(true) - $start;
echo "isset: " . number_format($total_time, 6) . PHP_EOL;

$start = microtime(true);

for ($i = 0; $i < 10000; ++$i) {
    in_array(rand(1, 1000000), $a);
}

$total_time = microtime(true) - $start;
echo "in_array: " . number_format($total_time, 6) . PHP_EOL;
Copier après la connexion

Résultats :

Les résultats du test montrent que isset est nettement plus rapide que in_array, démontrant l'avantage de sa complexité temporelle constante.

Conclusion :

Lors de la vérification de l'existence d'éléments dans un tableau, isset est le choix préféré en raison de ses performances plus rapides. Cependant, si l'ordre des éléments est important, alors in_array doit être utilisé car il préserve l'ordre des éléments.

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:php.cn
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