配列のソート

PHP には配列をソートする関数が複数用意されています。 このページでは、それらの違いについて説明します。

主な相違点は次のとおりです。

  • 配列のキーでソートするものと、値でソートするものがあります。 $array['キー'] = '値';
  • キーと値の相関関係をソート後にも保持するものと保持しないものがあります。 保持しないものは、ソート後にキーを (0,1,2 ... と) 振りなおします。
  • ソート順による違いがあります。アルファベット順、 昇順、降順、自然順、ランダム、ユーザー定義の順などです。
  • 注意: ソート関数は、すべて配列自身を直接変更します。 ソートした配列を新しく作って返すわけではありません。
  • これらのソート関数でふたつのメンバーが等しいと判断された場合、 それらの順番は保持されます。 PHP 8.0.0 より前のバージョンでは、 それらの並び順は未定義でした(並び順が場合によって変わる可能性がありました)。

ソート関数の特性
関数名ソートの基準キーと値の相関関係ソート順関連する関数
array_multisort()文字列がキーの場合は維持し、数値添字配列の場合は維持しない最初の配列、あるいはソートオプションarray_walk()
asort()維持する昇順arsort()
arsort()維持する降順asort()
krsort()キー維持する降順ksort()
ksort()キー維持する昇順krsort()
natcasesort()維持する大文字小文字を区別しない自然順natsort()
natsort()維持する自然順natcasesort()
rsort()維持しない降順sort()
shuffle()維持しないランダムarray_rand()
sort()維持しない昇順rsort()
uasort()維持するユーザー定義uksort()
uksort()キー維持するユーザー定義uasort()
usort()維持しないユーザー定義uasort()
To Top