W3docs

Comprendere la funzione PHP Array Reverse

In PHP, la funzione array_reverse() è una funzione integrata che consente di invertire l'ordine degli elementi di un array.

La funzione PHP array_reverse() restituisce un nuovo array con gli elementi dell'array dato nell'ordine inverso. È una funzione integrata (non richiede estensioni) e funziona sia con array indicizzati che con array associativi. È lo strumento ideale quando hai bisogno di una visualizzazione "dall'ultimo al primo" dei dati — ad esempio, mostrare i commenti più recenti prima, scorrere un elenco al contrario o annullare un ordinamento.

Questa pagina tratta la sintassi, la gestione delle chiavi, il flag $preserve_keys e gli errori comuni.

Sintassi

array_reverse(array $array, bool $preserve_keys = false): array
ParametroObbligatorioDescrizione
$arrayL'array da invertire.
$preserve_keysNoSe true, le chiavi numeriche restano associate ai propri valori invece di essere rinumerate. Le chiavi string sono sempre preservate, indipendentemente da questo flag. Il valore predefinito è false.

La funzione restituisce un nuovo array; l'originale non viene mai modificato.

Come funziona la funzione PHP Array Reverse?

array_reverse() percorre l'array di input dall'ultimo elemento al primo e costruisce un nuovo array in quell'ordine. Per impostazione predefinita, le chiavi intere vengono rinumerate a partire da 0, mentre le chiavi string vengono mantenute così come sono. Imposta $preserve_keys su true quando vuoi che le chiavi numeriche originali rimangano associate ai propri valori.

Ecco il caso più semplice — invertire un array indicizzato:

Esempio PHP di utilizzo della funzione array_reverse

php— editable, runs on the server

Output:

Array
(
    [0] => cherry
    [1] => banana
    [2] => apple
)

Come possiamo vedere, l'ordine degli elementi in $reversed_array è l'inverso dell'ordine degli elementi in $original_array.

Utilizzo della funzione PHP Array Reverse con array associativi

Come accennato in precedenza, la funzione array_reverse() può essere usata anche con array associativi. Quando viene usata con array associativi, l'ordine degli elementi viene invertito, ma le chiavi string restano invariate per impostazione predefinita.

Ecco un esempio di come la funzione array_reverse() può essere usata con un array associativo:

Esempio PHP di come la funzione array_reverse() può essere usata con un array associativo

php— editable, runs on the server

Output:

Array
(
    [c] => cherry
    [b] => banana
    [a] => apple
)

Come possiamo vedere, le chiavi degli elementi in $reversed_array corrispondono ancora alle chiavi originali, ma l'ordine degli elementi è invertito. Le chiavi string sono sempre preservate, quindi il flag $preserve_keys non fa differenza in questo caso.

Preservare le chiavi numeriche

Per gli array indicizzati (con chiavi numeriche), array_reverse() rinumera le chiavi da 0 per impostazione predefinita. Di solito è ciò che si desidera, ma a volte l'indice originale ha un significato — un numero di riga, una posizione, un ID. Passa true come secondo argomento per mantenere quelle chiavi associate ai propri valori:

Esempio PHP di come preservare le chiavi numeriche con array_reverse()

<?php

$data = array(10 => "ten", 20 => "twenty", 30 => "thirty");

// Default: numeric keys are renumbered from 0
print_r(array_reverse($data));

// preserve_keys = true: original numeric keys are kept
print_r(array_reverse($data, true));

?>

Output:

Array
(
    [0] => thirty
    [1] => twenty
    [2] => ten
)
Array
(
    [30] => thirty
    [20] => twenty
    [10] => ten
)

Nel primo array i valori sono invertiti ma le chiavi vengono azzerate; nel secondo le chiavi 30, 20 e 10 viaggiano insieme ai propri valori.

Errori comuni

  • Non modifica l'array originale. array_reverse($arr) restituisce un nuovo array — non inverte $arr in-place. Cattura sempre il valore restituito: $arr = array_reverse($arr);.
  • Non è un ordinamento. L'inversione capovolge soltanto l'ordine attuale. Per ottenere un ordine decrescente, ordina prima (ad es. con rsort() o arsort()) anziché invertire.
  • Le chiavi string ignorano $preserve_keys. Il flag influisce solo sulle chiavi intere; le chiavi string vengono sempre mantenute.
  • Inversione di una string. array_reverse() funziona solo sugli array. Per invertire una string, usa strrev().

Funzioni correlate

Conclusione

In conclusione, la funzione array_reverse() è una funzione potente e versatile che consente di invertire facilmente l'ordine degli elementi in un array. Che tu stia lavorando con array indicizzati o array associativi, la funzione array_reverse() può aiutarti a manipolare gli array nel modo in cui hai bisogno. Grazie alla sua sintassi semplice e al comportamento intuitivo, la funzione array_reverse() è uno strumento essenziale per qualsiasi programmatore PHP che lavora con gli array.

Esercizio

Pratica
Quale delle seguenti affermazioni è vera riguardo alla funzione array_reverse() in PHP?
Quale delle seguenti affermazioni è vera riguardo alla funzione array_reverse() in PHP?
Was this page helpful?