PHP array_multisort() 関数

昇順に並べ替えられた配列を返します:

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

実行例

定義と使用法

array_multisort() 関数はソートされた配列を返します。1つまたは複数の配列を入力できます。関数は最初に1つ目の配列をソートし、次に他の配列をソートします。値が同じ場合、次の配列でソートします。

コメント:文字列のキー名は保持されますが、数値のキー名は再インデックス化され、0から始まり、1で増加します。

コメント:各配列の後に並べ替え順序と並べ替えの種類のパラメータを設定できます。設定されていない場合、各配列のパラメータはデフォルト値を使用します。

構文

array_multisort(array1,並べ替え順序,並べ替えの種類,array2,array3...)
パラメータ 説明
array1 必須。指定する配列。
並べ替え順序

オプション。指定する並べ替え順序。可能な値:

  • SORT_ASC - デフォルト。昇順に並べ替えます (A-Z)。
  • SORT_DESC - 降順に並べ替えます (Z-A)。
並べ替えの種類

オプション。指定する並べ替えの種類。可能な値:

  • SORT_REGULAR - デフォルト。各要素を通常の順序に並べ替えます(Standard ASCII、タイプを変更しません)。
  • SORT_NUMERIC - 各要素を数字として処理します。
  • SORT_STRING - 各要素を文字列として処理します。
  • SORT_LOCALE_STRING - 各要素を文字列として処理し、現在のロケール設定に基づいて(setlocale()で変更できます)並べ替えます。
  • SORT_NATURAL - 各要素を文字列として処理し、natsort()に似た自然並べ替えを使用します。
  • SORT_FLAG_CASE - SORT_STRINGやSORT_NATURALと組み合わせて(ビットまたは)文字列を並べ替えることができます。大文字と小文字を区別しません。
array2 オプション。指定する配列。
array3 オプション。指定する配列。

説明

array_multisort()関数は、複数の配列または多次元配列を並べ替えます。

引数の配列は、テーブルの列として処理され、行ごとに並べ替えられます - これはSQLのORDER BY子句の機能に似ています。最初の配列は並べ替えの主な配列です。配列の行(値)が同じ場合、次の入力配列の相应値の大きさに従って並べ替えられます。その後、依存関係に従って続きます。

最初の引数は配列で、その後の各引数は配列または以下の並べ替え順序のフラグ(並べ替え順序のフラグはデフォルトの並べ替え順序を変更するために使用されます)のいずれかです:

  • SORT_ASC - デフォルト、昇順に並べ替えます。(A-Z)
  • SORT_DESC - 降順に並べ替えます。(Z-A)

その後、並べ替えの種類を指定できます:

  • SORT_REGULAR - デフォルト。各要素を通常の順序に並べ替えます。
  • SORT_NUMERIC - 各要素を数値順に並べ替えます。
  • SORT_STRING - 各アイテムをアルファベット順に並べ替えます。

技術的詳細

返り値: 成功した場合 TRUE を返し、失敗した場合 FALSE を返します。
PHP バージョン: 4+
更新ログ:

ソートタイプ SORT_NATURAL と SORT_FLAG_CASE は PHP 5.4 で追加されました。

ソートタイプ SORT_LOCALE_STRING は PHP 5.3 で追加されました。

さらに多くの例

例 1

昇順に並べ替えられた配列を返します:

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

実行例

例 2

二つの値が同じ場合のソート方法:

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

実行例

例 3

ソートパラメータを使用して:

<?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);
?>

実行例

例 4

二つの配列を合併し、数字の降順に並べ替えます:

<?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);
?>

実行例