W3docs

krsort()

Ordinare gli array in PHP è un'operazione comune. La funzione krsort() ordina un array per chiave in ordine decrescente.

Funzione PHP krsort(): Ordina un Array per Chiave in Ordine Decrescente

Ordinare gli array in PHP è un'operazione comune, specialmente quando si lavora con grandi quantità di dati. La funzione PHP krsort() è una funzione estremamente utile che consente agli sviluppatori di ordinare un array per chiave in ordine decrescente. Questa funzione è molto potente e può far risparmiare molto tempo e sforzo nell'ordinamento degli array. In questo articolo, analizzeremo in dettaglio la funzionalità della funzione krsort() e mostreremo come usarla in diversi scenari.

Cos'è krsort()?

La funzione krsort() è una funzione integrata di PHP che ordina un array in ordine decrescente in base alle sue chiavi, preservando l'associazione tra ogni chiave e il suo valore. Il nome sta per key reverse sort (ordinamento inverso per chiave). È la controparte in ordine decrescente di ksort(), che ordina per chiave in ordine crescente.

Poiché ordina per chiave (non per valore), krsort() è più utile con array associativi o array con chiavi numeriche esplicite — ad esempio, ordinare record con chiave per ID, anno o priorità in modo che la chiave più grande venga prima.

Due cose da tenere a mente:

  • krsort() ordina l'array in place e restituisce true in caso di successo (non restituisce mai l'array ordinato), quindi si chiama direttamente sulla variabile.
  • Lavora sulle chiavi dell'array. Per ordinare per valore, usare arsort() (mantiene le chiavi) o rsort() (reindicizza).

Sintassi di krsort()

La sintassi della funzione krsort() è la seguente:

krsort(array &$array, int $flags = SORT_REGULAR): true

Qui, $array è l'array da ordinare (passato per riferimento, quindi l'array originale viene modificato), e $flags è un parametro opzionale che controlla come vengono confrontate le chiavi. La funzione restituisce sempre true. I possibili valori di $flags sono:

  • SORT_REGULAR: Questo è il valore predefinito. La funzione ordina gli elementi normalmente, senza alcuna modifica ai loro tipi di dati.
  • SORT_NUMERIC: La funzione ordina gli elementi numericamente, ovvero trattandoli come numeri.
  • SORT_STRING: La funzione ordina gli elementi come stringhe.
  • SORT_LOCALE_STRING: La funzione ordina gli elementi come stringhe, in base all'impostazione locale corrente.
  • SORT_NATURAL: La funzione ordina gli elementi in ordine naturale, ovvero trattandoli come stringhe, ma tenendo conto dei loro valori numerici.
  • SORT_FLAG_CASE: Questo flag può essere combinato con SORT_STRING o SORT_NATURAL per ordinare le stringhe in modo case-insensitive.

Esempi di utilizzo di krsort()

Ora vediamo alcuni esempi di come usare la funzione krsort().

Esempio 1: Ordinare un array in ordine decrescente in base alle sue chiavi

php— editable, runs on the server

Output:

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

In questo esempio, abbiamo un array con quattro elementi. Stiamo ordinando l'array in ordine decrescente in base alle sue chiavi usando la funzione krsort(). L'output mostra che l'array è stato ordinato in ordine decrescente in base alle sue chiavi.

Esempio 2: Ordinare un array in ordine decrescente in base alle sue chiavi, numericamente

php— editable, runs on the server

Output:

Array
(
    [4] => cherry
    [3] => date
    [2] => apple
    [1] => banana
)

Qui le chiavi sono stringhe numeriche. Ordinando con il flag SORT_NUMERIC le si confronta come numeri, quindi l'array risulta ordinato dalla chiave più alta (4) a quella più bassa (1). Si noti che PHP converte automaticamente le chiavi stringa simili a interi come "1" in interi, quindi SORT_REGULAR darebbe lo stesso risultato in questo caso — il flag SORT_NUMERIC è importante quando le chiavi potrebbero altrimenti essere confrontate come stringhe (dove "10" ordina prima di "9").

Esempio 3: Ordinare un array in ordine decrescente in base alle sue chiavi, senza distinzione tra maiuscole e minuscole

php— editable, runs on the server

Output:

Array
(
    [d] => date
    [C] => cherry
    [b] => banana
    [A] => apple
)

In questo esempio, abbiamo un array con quattro elementi, dove le chiavi sono stringhe, alcune delle quali in maiuscolo. Stiamo ordinando l'array in ordine decrescente in base alle sue chiavi, senza distinzione tra maiuscole e minuscole, usando la funzione krsort() con i flag SORT_STRING e SORT_FLAG_CASE. L'output mostra che l'array è stato ordinato in ordine decrescente in base alle sue chiavi, ignorando la distinzione tra maiuscole e minuscole.

Funzioni di ordinamento correlate

PHP offre un'intera famiglia di funzioni per l'ordinamento degli array. La scelta di quella giusta dipende da due domande: si ordina per chiave o per valore, e si vuole l'ordine crescente o decrescente?

FunzioneOrdina perOrdineMantiene l'associazione chiave
ksort()ChiaveCrescente
krsort()ChiaveDecrescente
asort()ValoreCrescente
arsort()ValoreDecrescente
sort()ValoreCrescenteNo (reindicizzato)
rsort()ValoreDecrescenteNo (reindicizzato)
uksort()ChiaveCallback personalizzato

Se la logica di ordinamento è troppo specifica per i flag standard — ad esempio, ordinare le chiavi per lunghezza della stringa — ricorrere a uksort(), che consente di fornire la propria funzione di confronto.

Conclusione

La funzione krsort() ordina un array per le sue chiavi in ordine decrescente, in place, preservando ogni coppia chiave-valore. Accetta un argomento opzionale per il flag di ordinamento che consente di confrontare le chiavi numericamente, come stringhe, in modo naturale o senza distinzione tra maiuscole e minuscole. Usare krsort() ogni volta che si ha un dataset con chiavi — ID, anni, priorità — che si desidera presentare dalla chiave più alta alla più bassa, e usare i suoi parenti ksort() e arsort() quando si ha bisogno di un ordine diverso o si vuole ordinare per valore.

Practice

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