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