W3docs

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:

php— editable, runs on the server

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. Chiama array_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

Esercizio

Pratica
Cosa fa la funzione array_push in PHP?
Cosa fa la funzione array_push in PHP?
Was this page helpful?