Funzione array_multisort() di PHP

Esempio

Restituire un array ordinato in ordine crescente:

<?php
$a=array("Dog","Cat","Horse","Bear","Zebra");
array_multisort($a);
print_r($a);
?>

Esempio di esecuzione

Definizione e utilizzo

La funzione array_multisort() restituisce un array ordinato. Puoi inserire un array o più array. La funzione ordina prima il primo array, poi gli altri array, e se due o più valori sono uguali, ordina il successivo array.

Commento:I nomi delle chiavi di stringa saranno conservati, ma i nomi delle chiavi numeriche saranno riindicizzati, iniziando da 0 e aumentando di 1.

Commento:Puoi impostare l'ordine di ordinamento e il tipo di ordinamento dopo ogni array. Se non impostati, ogni parametro dell'array utilizzerà il valore predefinito.

Sintassi

array_multisort(array1,sorting order,sorting type,array2,array3...)
Parametro Descrizione
array1 Obbligatorio. Specificare l'array.
sorting order

Opzionale. Specificare l'ordine di ordinamento. Valori possibili:

  • SORT_ASC - Predefinito. Ordina in ordine crescente (A-Z).
  • SORT_DESC - Ordina in ordine decrescente (Z-A).
sorting type

Opzionale. Specificare il tipo di ordinamento. Valori possibili:

  • SORT_REGULAR - Predefinito. Ordina ogni elemento in ordine regolare (Standard ASCII, senza cambiare il tipo).
  • SORT_NUMERIC - Trattare ogni elemento come un numero.
  • SORT_STRING - Trattare ogni elemento come una stringa.
  • SORT_LOCALE_STRING - Trattare ogni elemento come una stringa, basato sul set di caratteri corrente (può essere modificato con setlocale()).
  • SORT_NATURAL - Trattare ogni elemento come una stringa, utilizzando un ordinamento naturale simile a natsort().
  • SORT_FLAG_CASE - Può essere combinato (o bitwise) con SORT_STRING o SORT_NATURAL per ordinare le stringhe senza distinzione tra maiuscole e minuscole.
array2 Opzionale. Specificare l'array.
array3 Opzionale. Specificare l'array.

Descrizione

La funzione array_multisort() ordinava più array o array multidimensionali.

L'array nel parametro viene considerato come una colonna di una tabella e viene ordinato per riga - questo è simile alla funzione ORDER BY di SQL. L'array principale da ordinare è il primo array. Se le righe (valori) dell'array sono identiche, viene ordinato secondo la dimensione delle corrispondenti valori dell'array successivo, e così via.

Il primo parametro è un array, ogni parametro successivo può essere un array o uno dei seguenti segni di ordinamento (i segni di ordinamento sono utilizzati per modificare l'ordine di default di ordinamento):

  • SORT_ASC - Predefinito, ordina in ordine crescente. (A-Z)
  • SORT_DESC - Ordina in ordine decrescente. (Z-A)

Successivamente è possibile specificare il tipo di ordinamento:

  • SORT_REGULAR - Predefinito. Ordina ogni elemento in ordine regolare.
  • SORT_NUMERIC - Ordina ogni elemento in ordine numerico.
  • SORT_STRING - Ordina ogni elemento in ordine alfabetico.

Dettagli tecnici

Valore di ritorno: Restituisce TRUE se ha successo, FALSE se fallisce.
Versione PHP: 4+
Log delle aggiornamenti:

I tipi di ordinamento SORT_NATURAL e SORT_FLAG_CASE sono stati aggiunti in PHP 5.4.

Il tipo di ordinamento SORT_LOCALE_STRING è stato aggiunto in PHP 5.3.

Più esempi

Esempio 1

Restituire un array ordinato in ordine crescente:

<?php
$a1=array("Dog","Cat");
$a2=array("Fido","Missy");
array_multisort($a1,$a2);;
print_r($a1);
print_r($a2);
?>

Esempio di esecuzione

Esempio 2

Come ordinare quando due valori sono uguali:

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,$a2);;
print_r($a1);
print_r($a2);
?>

Esempio di esecuzione

Esempio 3

Utilizzare i parametri di ordinamento:

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,SORT_ASC,$a2,SORT_DESC);;
print_r($a1);
print_r($a2);
?>

Esempio di esecuzione

Esempio 4

Unire due array e ordinare in ordine decrescente numerico:

<?php
$a1=array(1,30,15,7,25);
$a2=array(4,30,20,41,66);
$num=array_merge($a1,$a2);
array_multisort($num,SORT_DESC,SORT_NUMERIC);;
print_r($num);
?>

Esempio di esecuzione