Pour trouver le nombre d'éléments dans un PHP $array
, qui est plus rapide / meilleur / plus fort?
count($array)
ou sizeof($array)
?
Éditer
Grâce à Andy Lester, j'ai affiné ma question pour qu'elle soit signifiée dans une perspective multilingue. Les commentateurs du manuel disent
"[sizeof] ne signifie pas la même chose dans de nombreuses autres langues basées sur C"
Est-ce vrai?
Réponses:
Je les utiliserais
count()
s'ils sont les mêmes, car selon mon expérience, c'est plus courant, et par conséquent, moins de développeurs liront votre code pour dire "sizeof()
, qu'est-ce que c'est?" et devoir consulter la documentation.Je pense que cela signifie que
sizeof()
cela ne fonctionne pas comme en C (calcul de la taille d'un type de données). Il a probablement fait cette mention explicitement parce que PHP est écrit en C et fournit beaucoup d'emballages pour les fonctions de même nom (Cstrlen()
,printf()
, etc.)la source
Selon phpbench :
Vaut-il la peine de calculer à l'avance la longueur de la boucle?
Une boucle avec 1000 clés avec des valeurs de 1 octet est donnée.
Donc, je préfère personnellement utiliser count () au lieu de sizeof () avec pré calc .
la source
Ils sont identiques selon
sizeof()
En l'absence de toute raison de s'inquiéter de "plus vite", toujours optimiser pour l'humain. Qu'est-ce qui a plus de sens pour le lecteur humain?
la source
Selon le site Web,
sizeof()
est un alias decount()
, ils devraient donc exécuter le même code. Peut-êtresizeof()
a un peu de frais généraux, car il doit le résoudrecount()
? Cela devrait cependant être très minime.la source
Je sais que c'est vieux mais je voulais juste mentionner que j'ai essayé avec PHP 7.2:
et le résultat a été:
Il suffit donc d'utiliser
count()
.la source
1 000 000 000 iteration of count() took 525 sec
1 000 000 000 iteration of sizeof() took 1361 sec
sizeof()
est juste un aliascount()
comme mentionné icihttp://php.net/manual/en/function.sizeof.php
la source
Veuillez utiliser la fonction de comptage, voici un exemple comment compter le tableau dans un élément
La
count()
fonction renvoie le nombre d'éléments dans un tableau.La
sizeof()
fonction renvoie le nombre d'éléments dans un tableau.La
sizeof()
fonction est un alias de lacount()
fonction.la source