PHP array_multisort() 関数

❮ PHP 配列リファレンス

昇順にソートした配列を返します:

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

定義と用法

array_multisort()関数は、ソート後の配列を返します。1つまたは複数の配列を割り当てることができます。 比較結果が等しくなる二つの要素があった場合、ソートした配列におけるそれらの並び順は不定となります。

注: 文字列キーは、そのまま維持されますが、数値キーは 0 から始まり 1 ずつ増加キーに再インデクスされます。

注: 各配列の後に、ソート順およびソートタイプのパラメータを割り当てることができます。 指定しない場合、各配列パラメーターはデフォルト値を使用します。


構文

array_multisort(array1,sorting order,sorting type,array2,array3...)

パラメータ 説明
array1 必須。配列を指定する
sorting order 任意。ソート順を指定する。指定可能な値:
  • SORT_ASC - デフォルト。昇順にソートする (A-Z)
  • SORT_DESC - 降順にソートする (Z-A)
ソートのタイプ 任意。要素を比較するときに使用するタイプを指定する。指定可能な値:
  • SORT_REGULAR - デフォルト。要素を通常通り比較する(標準ASCII)
  • SORT_NUMERIC - 要素を数値として比較する
  • SORT_STRING - 要素を文字列値として比較する
  • SORT_LOCALE_STRING - 現在のロケールに基づいて要素を文字列として比較する (setlocale()を使用して変更できる)
  • SORT_NATURAL - natsort()のような "自然順序"を使って要素を文字列として比較する
  • SORT_FLAG_CASE - SORT_STRING や SORT_NATURAL と (ビット OR で) 組み合わせて、 大文字小文字を区別しない文字列のソートを指定する
array2 任意。配列を指定する
array3 任意。配列を指定する

技術内容
返り値: 成功した場合は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

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

2つの配列をマージして、数値の降順にソートします:

<?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);
?>
例の実行 »

❮ PHP 配列リファレンス