Dans le manuel PHP, ( array_push ) dit ..
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 surcharge pour appeler une fonction.
Par exemple :
$arr = array();
array_push($arr, "stackoverflow");
print_r($arr);
contre
$arr[] = "stackoverflow";
print_r($arr);
Je ne comprends pas pourquoi il y a une grande différence.
Réponses:
Lorsque vous appelez une fonction en PHP (comme
array_push()
), il y a des frais généraux à l'appel, car PHP doit rechercher la référence de la fonction, trouver sa position en mémoire et exécuter le code qu'il définit.L'utilisation
$arr[] = 'some value';
ne nécessite pas d'appel de fonction et implémente l'ajout directement dans la structure de données. Ainsi, lorsque vous ajoutez beaucoup de données, leur utilisation est beaucoup plus rapide et économe en ressources$arr[]
.la source
$arr[] = value
sont plus rapides? Essayer d'imaginer pourquoi le compilateur traiterait le code différemment.Vous pouvez ajouter plus d'un élément d'un coup au tableau en utilisant array_push,
par exemple
array_push($array_name, $element1, $element2,...)
Où $ element1, $ element2, ... sont des éléments à ajouter au tableau.
Mais si vous voulez ajouter un seul élément à la fois, alors une autre méthode (c'est-à-dire en utilisant $ array_name []) devrait être préférée.
la source
La différence est dans la ligne ci-dessous à "parce que de cette façon, il n'y a pas de surcharge pour appeler une fonction."
la source
Vous devez toujours utiliser
$array[]
si possible car, comme l'indique la boîte, il n'y a pas de surcharge pour l'appel de fonction. C'est donc un peu plus rapide que l'appel de fonction.la source
array_push - Pousse un ou plusieurs éléments à la fin du tableau
Prenez note des mots " un ou plusieurs éléments à la fin " pour le faire en utilisant,
$arr[]
vous devrez obtenir la taille maximale du tableaula source
$arr[...index...] = $value;
avec ce qui est discuté ici, c'est-à-dire$arr[] = $value;
. Pas besoin de connaître la taille ou le tableau, pour pousser sur la fin. Plusieurs éléments seraient simplement plusieurs appels:$arr[] = $value1; $arr[] = $value2; $arr[] = $value3;
expliquer: 1. le premier déclare la variable dans le tableau.
2. la deuxième méthode array_push est utilisée pour pousser la chaîne dans la variable array.
3. finalement, il imprimera le résultat.
4. la deuxième méthode consiste à stocker directement la chaîne dans le tableau.
5. les données sont imprimées dans les valeurs du tableau en utilisant la méthode print_r.
ces deux sont identiques
la source
les deux sont identiques, mais array_push fait une boucle dans son paramètre qui est un tableau et exécute $ array [] = $ element
la source
Je sais que c'est une vieille réponse, mais il pourrait être utile pour les autres de savoir qu'une autre différence entre les deux est que si vous devez ajouter plus de 2/3 valeurs par boucle à un tableau, il est plus rapide à utiliser:
au lieu de:
edit- J'ai oublié de fermer le crochet pour le
for
conditionnella source
for(...){ $arr = $arr + [$i, $i*2, $i*3, $i*4, ...] }
. Je suppose que array_push est encore légèrement plus rapide que cela.Personne n'a dit, mais array_push pousse seulement un élément vers la FIN DU TABLEAU, où $ array [index] peut insérer une valeur à n'importe quel index donné. Grande différence.
la source
$array[index] =
, ce qui est une opération différente de$array[] = ...
. La question donne deux morceaux de code et demande pourquoi il y aurait une différence [de performance] significative entre eux. La question signifie littéralement$array[] = ...
, qui est un idiome php spécifique, qui n'implique pas d'index. array + index résout un problème différent, produit un code différent et constitue un compromis différent.