Funzione array_push in PHP: Guida Completa
Scopri come usare array_push in PHP per aggiungere elementi a un array. Sintassi, esempi pratici, differenze con [] e funzioni correlate.
array_push() aggiunge uno o più elementi alla fine di un array, trattando quell'array come uno stack. È il modo più comune per far crescere una lista in PHP e restituisce il nuovo numero di elementi una volta che i valori sono stati aggiunti.
Questa pagina tratta la sintassi, il valore restituito da array_push(), il suo comportamento con array associativi e array vuoti, la scorciatoia [] più veloce e le funzioni correlate per rimuovere o anteporre elementi.
Sintassi
array_push(array &$array, mixed ...$values): int$array— l'array da modificare. Viene passato per riferimento (&), quindi la variabile originale viene modificata sul posto; non è necessario riassegnarla.$values— uno o più valori da aggiungere in coda, nell'ordine indicato.- Valore restituito — la nuova lunghezza dell'array (un intero).
Esempio base
L'esempio seguente parte da tre frutti e ne aggiunge altri due:
I nuovi valori vengono aggiunti nell'ordine indicato e $count contiene la lunghezza aggiornata:
5
Array
(
[0] => apple
[1] => banana
[2] => cherry
[3] => orange
[4] => peach
)La scorciatoia [] per un singolo valore
Se è necessario aggiungere un solo elemento, la sintassi $array[] = $value produce lo stesso risultato ed è più veloce, perché evita il costo di una chiamata di funzione:
<?php
$colors = array("red", "green");
$colors[] = "blue"; // same as array_push($colors, "blue")
print_r($colors);
?>Array
(
[0] => red
[1] => green
[2] => blue
)Usa array_push() quando devi aggiungere più valori contemporaneamente; usa [] per un singolo valore.
Comportamento con le chiavi
array_push() riassegna sempre ai valori aggiunti nuove chiavi intere, continuando dalla chiave intera più alta già presente nell'array. Le chiavi stringa (associative) esistenti non vengono modificate:
<?php
$data = array("name" => "Ann", 5 => "five");
array_push($data, "added");
print_r($data);
?>Array
(
[name] => Ann
[5] => five
[6] => added
)Si noti che il nuovo elemento è diventato [6] — uno in più rispetto alla chiave intera più grande (5), non [2].
Aggiunta a un array vuoto
Non è necessario dichiarare le chiavi in anticipo. L'aggiunta a un array vuoto inizia la numerazione da 0:
<?php
$list = array();
array_push($list, "first", "second");
print_r($list);
?>Array
(
[0] => first
[1] => second
)Errori comuni
- Modifica sul posto. Poiché l'array viene passato per riferimento, non scrivere
$arr = array_push($arr, $x)— questo sovrascriverà l'array con la lunghezza intera. Chiamaarray_push($arr, $x)su una riga a sé stante. - L'argomento deve essere una variabile. Poiché il parametro è per riferimento, non è possibile fare push su un valore letterale come
array_push(array(), "x"). - Usa
[]per un solo valore. Per un singolo elemento,$arr[] = $valueè più chiaro e leggermente più veloce.
Funzioni correlate
array_pop()— rimuove e restituisce l'ultimo elemento (il contrario di push).array_unshift()— aggiunge elementi all'inizio di un array.array_shift()— rimuove il primo elemento.array_merge()— combina due o più array in uno solo.array_splice()— inserisce o rimuove elementi in qualsiasi posizione.