Quoi de mieux à utiliser en PHP pour ajouter un membre de tableau,
$array[] = $value;
ou
array_push($array, $value);
?
Bien que le manuel indique que vous feriez mieux d'éviter un appel de fonction, j'ai également lu que $array[]
c'est beaucoup plus lent que array_push()
. Quels sont quelques éclaircissements ou repères?
php
arrays
performance
Alex
la source
la source
Réponses:
Aucun point de repère, mais je pense personnellement que
$array[]
c'est plus propre à regarder, et honnêtement diviser les cheveux en quelques millisecondes n'est pas pertinent à moins que vous ne prévoyiez d'ajouter des centaines de milliers de chaînes à votre tableau.Edit : Ran ce code:
La première méthode utilisée
$array[]
est presque 50% plus rapide que la seconde.Quelques résultats de référence:
Cela ne devrait pas être surprenant, comme le note le manuel PHP:
La façon dont il est formulé, je ne serais pas surpris si elle
array_push
est plus efficace lors de l'ajout de plusieurs valeurs. EDIT : Par curiosité, j'ai fait quelques tests supplémentaires, et même pour un grand nombre d'ajouts, les$array[]
appels individuels sont plus rapides qu'un grosarray_push
. Intéressant.la source
$array[]
c'est en effet beaucoup plus rapide, 300 ms contre 2000 ms pour les affectations de 1M sur ma machine. Cependant, l'ajout de 20 éléments à la fois dans array_push était à peu près aussi rapide que 20$array[] =
s.L'utilisation principale de array_push () est que vous pouvez pousser plusieurs valeurs à la fin du tableau.
Il dit dans la documentation :
la source
À partir de la documentation php pour
array_push
:la source
Le mot dans la rue est que [] est plus rapide car pas de surcharge pour l'appel de fonction. De plus, personne n'aime vraiment les fonctions de tableau de PHP ...
"Est-ce ... une botte de foin, une aiguille ... ou est-ce une botte de foin d'aiguille ... ah, f *** it ... [] ="
la source
Une différence est que vous pouvez appeler array_push () avec plus de deux paramètres, c'est-à-dire que vous pouvez pousser plus d'un élément à la fois vers un tableau.
impressions
1,2,3,4
la source
Une simple déclaration $ myarray [] sera plus rapide car vous ne faites que pousser un élément sur la pile d'éléments en raison du manque de surcharge qu'une fonction entraînerait.
la source
Puisque " array_push " est une fonction et qu'il est appelé plusieurs fois quand il est à l'intérieur de la boucle, il allouera une mémoire dans la pile. Mais lorsque nous utilisons $ array [] = $ value, nous attribuons simplement une valeur à array.
la source
Le deuxième est un appel de fonction, donc généralement, il devrait être plus lent que l'utilisation des fonctionnalités principales d'accès au tableau. Mais je pense que même une requête de base de données dans votre script dépassera 1.000.000 appels à
array_push()
.la source
Bien que la question portait davantage sur la performance, les gens en viendront à se demander si c'est une bonne pratique à utiliser
array_push
ou$arr[]
.La fonction peut signifier des lignes plus petites pour plusieurs valeurs:
Cependant ,
array_push
...Je resterai avec
$arr[]
.la source
Je veux juste ajouter:
int array_push(...)
retourner le nouveau nombre d'éléments dans le tableau ( php doc ). qui peut être utile et plus compact que$myArray[] = ...; $total = count($myArray);
.Est également
array_push(...)
significatif lorsque la variable est utilisée comme pile.la source