Descrizione
bool
array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]] )
Array_multisort() Può essere usata per ordinare parecchi
array allo stesso tempo, oppure un array multidimensionale, rispetto a una o
più dimensioni. Mantiene le associazioni delle chiavi durante l'ordinamento,
mentre le chiavi numeriche vengono reindicizzate.
Gli array in input sono trattati come campi di una tabella che vengano ordinati
per righe - questo assomiglia alla funzionalità della clausola SQL ORDER BY
Il primo array è quello primario, rispetto a cui ordinare. Le righe
(valori) in questo array that siano uguali vengono ordinate secondo
l'array successivo, e così via.
La struttura degli argomenti di questa funzione è un po' inusuale, ma
flessibile. Il primo argomento deve essere un
array. In seguito, ogni argomento può essere sia un array che
un flag di ordinamento, selezionabile dalla seguente lista.
Flag di ordinamento:
Sorting type flags:
SORT_REGULAR - confronta gli elementi in modo normale
SORT_NUMERIC - confronta gli elementi numericamente
SORT_STRING - confronta gli elementi come stringhe
Dopo ogni array, non si possono specificare due flag dello stesso
tipo. I flag specificati dopo un array si applicano
solo a quell'array - sono reimpostati ai default SORT_ASC e
SORT_REGULAR prima di ogni nuovo array passato come argomento.
Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
Esempio 1. Ordinamre più array
<?php $ar1 = array("10", 100, 100, "a"); $ar2 = array(1, 3, "2", 1); array_multisort($ar1, $ar2); ?>
|
|
In questo esempio, dopo l'ordinamento, il primo array conterrà "10",
"a", 100, 100. Il secondo array conterrà 1, 1, "2", 3. Gli
elementi nel secondo array che corrispondono agli elementi
identici nel primo array (100 e 100) vengono pure ordinati.
Esempio 2. Ordinare un array multi-dimensionale
<?php $ar = array(array ("10", 100, 100, "a"), array (1, 3, "2", 1)); array_multisort($ar[0], SORT_ASC, SORT_STRING, $ar[1], SORT_NUMERIC, SORT_DESC); ?>
|
|
In questo esempio, dopo l'ordinamento, il primo array conterrà 10,
100, 100, "a" (ordinato come stringhe ordine crescente), e
il secondo conterrà 1, 3, "2", 1 (ordinati come numeri, in
ordine decrescente).