W3docs

La Guida Completa alla Funzione array_pad di PHP

Scopri come usare array_pad in PHP per garantire una lunghezza fissa agli array, con esempi pratici e casi limite spiegati chiaramente.

Gli array sono fondamentali in quasi ogni programma PHP e a volte hai bisogno che un array abbia una lunghezza garantita — riempito con valori segnaposto quando è troppo corto. La funzione array_pad di PHP fa esattamente questo: restituisce una copia di un array espansa fino a una dimensione target, con un valore a tua scelta che riempie i nuovi slot. Questa guida copre la sintassi, come il segno della dimensione controlla la direzione del riempimento, i comportamenti che possono sorprendere, e esempi eseguibili.

Cosa Fa la Funzione array_pad

array_pad restituisce un nuovo array riempito fino a una lunghezza specificata. Due regole governano il suo comportamento:

  • Se la dimensione richiesta è maggiore dell'input, vengono aggiunte copie del valore di riempimento — alla fine quando la dimensione è positiva, all'inizio quando è negativa.
  • Se la dimensione richiesta è minore o uguale alla lunghezza attuale dell'input, l'array viene restituito invariato. array_pad non rimuove mai elementi.

L'array originale non viene modificato; si lavora con il valore restituito.

Sintassi della Funzione array_pad

array_pad(array $array, int $length, mixed $value): array
  • $array: L'array di input che vuoi riempire. Non viene modificato.
  • $length: La dimensione target. Un valore positivo riempie a destra (fine); un valore negativo riempie a sinistra (inizio). Il numero di elementi aggiunti è abs($length) - count($array).
  • $value: Il valore usato per ogni elemento aggiunto. Può essere di qualsiasi tipo, incluso un altro array.

Casi d'Uso della Funzione array_pad

La funzione array_pad è utile quando vuoi:

  • Garantire che un array abbia almeno N elementi prima di iterare su posizioni fisse.
  • Allineare a destra o a sinistra i dati riempiendo il lato opposto.
  • Completare una griglia, un modulo o una riga di tabella di dimensione fissa con segnaposto predefiniti.

Esempi della Funzione array_pad

Ecco alcuni esempi di come la funzione array_pad può essere utilizzata in scenari reali:

Esempio 1: Riempimento alla Fine (Dimensione Positiva)

php— editable, runs on the server

Output:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 0
    [4] => 0
)

L'array di input $numbers ha 3 elementi e la dimensione target è 5, quindi 5 - 3 = 2 zeri vengono aggiunti alla fine.

Esempio 2: Riempimento all'Inizio (Dimensione Negativa)

php— editable, runs on the server

Output:

Array
(
    [0] => black
    [1] => black
    [2] => red
    [3] => green
    [4] => blue
)

La dimensione -5 è negativa, quindi il riempimento avviene all'inizio. I 3 colori originali mantengono il loro ordine e abs(-5) - 3 = 2 copie di 'black' vengono anteposte. Da notare che le chiavi vengono reindicizzate a partire da 0 indipendentemente dalla direzione.

Esempio 3: Riempimento di un Array con un Valore Specifico

php— editable, runs on the server

Output:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => z
    [4] => z
    [5] => z
    [6] => z
)

L'input ha 3 elementi e la dimensione target è 7, quindi 7 - 3 = 4 copie di 'z' vengono aggiunte.

Comportamenti Particolari e Casi Limite

Alcuni comportamenti possono sorprendere:

  • Non riduce mai un array. Se abs($length) è minore o uguale al conteggio attuale, l'array viene restituito invariato. Per rimuovere elementi, usa array_slice o array_splice.
  • Le chiavi string vengono mantenute, ma il riempimento è sempre numerico. Quando si riempie un array associativo, le chiavi string esistenti vengono preservate e i nuovi elementi ricevono chiavi intere sequenziali:
<?php

$scores = array('math' => 90, 'science' => 85);
print_r(array_pad($scores, 4, 0));

?>
Array
(
    [math] => 90
    [science] => 85
    [0] => 0
    [1] => 0
)
  • Il valore di riempimento può essere di qualsiasi tipo. Passare un array come $value inserisce copie dell'intero array, il che è utile per costruire griglie di righe predefinite.
  • Il riempimento è fisso, non interpolato. Ogni nuovo slot riceve esattamente lo stesso $value. Se hai bisogno di un riempimento generato o sequenziale, costruiscilo con array_fill o range().

Funzioni Correlate

Conclusione

array_pad è il modo più rapido per garantire che un array abbia una lunghezza specificata senza scrivere un ciclo. Ricorda le due regole che ne governano il comportamento: una dimensione positiva riempie la fine, una dimensione negativa riempie l'inizio, e una dimensione pari o inferiore alla lunghezza attuale lascia l'array invariato. Con questi concetti in mente — più la gestione delle chiavi e i casi limite descritti sopra — puoi ricorrere a array_pad ogni volta che hai bisogno di array di dimensione fissa e prevedibile nei tuoi progetti PHP.

Pratica

Pratica
Cosa fa la funzione array_pad() in PHP?
Cosa fa la funzione array_pad() in PHP?
Was this page helpful?