130 votes

Quoi de mieux d'utiliser dans PHP $ array [] = $ value ou array_push ($ array, $ value)?

Quoi de mieux d'utiliser en PHP pour ajouter un membre du tableau $array[] = $value ou array_push($array, $value) ?

Bien que le manuel indique qu'il est préférable d'éviter un appel de fonction, j'ai également lu que $array[] est beaucoup plus lent que array_push() . Est-ce que quelqu'un a des clarifications ou des points de repère?

Je vous remercie.

174voto

Paolo Bergantino Points 199336

Pas de repères, mais personnellement, je pense que comme $array[] est plus propre à l'oeil, et honnêtement, le fractionnement des poils plus de millisecondes est peu pertinent, sauf si vous envisagez sur l'ajout de centaines de milliers de chaînes à votre tableau.

Edit: Ran ce code:

$t = microtime(true);
$array = array();
for($i = 0; $i < 10000; $i++) {
    $array[] = $i;
}
print microtime(true) - $t;
print '<br>';
$t = microtime(true);
$array = array();
for($i = 0; $i < 10000; $i++) {
    array_push($array, $i);
}
print microtime(true) - $t;

La première méthode à l'aide d' $array[] est presque 50% plus rapide que la seconde.

Certains résultats de référence:

Run 1
0.0054171085357666 // array_push
0.0028800964355469 // array[]

Run 2
0.0054559707641602 // array_push
0.002892017364502 // array[]

Run 3
0.0055501461029053 // array_push
0.0028610229492188 // array[]

Cela ne devrait pas être surprenant, le manuel PHP notes:

Si vous utilisez array_push() pour ajouter un élément au tableau, il est préférable d'utiliser $array[] = car de cette façon il n'y a pas de frais généraux de l'appel d'une fonction.

La façon dont il est formulé, je ne serais pas surpris si array_push est plus efficace lors de l'ajout de plusieurs valeurs. EDIT: par curiosité, fait quelques tests supplémentaires, et même pour un grand nombre d'ajouts, personne $array[] des appels sont plus rapides que d'un gros array_push. Intéressant.

46voto

Inspire Points 1362

La principale utilisation de array_push () est que vous pouvez insérer plusieurs valeurs à la fin du tableau.

Il est dit dans la documentation :

Si vous utilisez array_push () pour ajouter un élément au tableau, il vaut mieux utiliser $ array [] =, car il n’y aurait pas de surcroît d’appel à une fonction.

34voto

Benedict Cohen Points 6997

Des documents php pour array_push :

Remarque: Si vous utilisez array_push () pour ajouter un élément au tableau, mieux vaut utiliser $ array [] =, car il n’y aurait pas de surcharge à appeler une fonction.

26voto

typeoneerror Points 19087

La rumeur dit que [] est plus rapide parce qu’il n’ya pas de surcharge pour l’appel de fonction. De plus, personne n'aime vraiment les fonctions de tableau de PHP ...

"Est-ce que ... c'est une botte de foin, une aiguille ... ou c'est une aiguille de botte de foin ... ah, f *** it ... [] ="

8voto

VolkerK Points 54118

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 dans un tableau.

 $myArray = array();
array_push($myArray, 1,2,3,4);
echo join(',', $myArray);
 

imprime 1,2,3,4

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X