現在の位置: ホーム> 最新記事一覧> PHP配列のソートを詳しく解説:sort、asort、usortなどの関数の使用方法と例

PHP配列のソートを詳しく解説:sort、asort、usortなどの関数の使用方法と例

M66 2025-10-20

PHP 配列ソートの概要

PHP 開発では、配列のソートは一般的な操作です。数値配列をソートする場合でも、連想配列をソートする場合でも、PHP には、さまざまなソート方法を実装するための豊富な組み込み関数が用意されています。これらの機能を使いこなすことで、データ処理をより効率的に行うことができます。

PHPでよく使われるソート関数

PHP には、配列を並べ替えるためのさまざまな組み込み関数が用意されています。

  • sort() : 値を小さい順に並べ替えます。
  • rsort() : 値の大きい順に並べ替えます。
  • asort() : キー名を関連付けたまま、配列を値の昇順に並べ替えます。
  • arsort() : キー名を関連付けたまま、配列を値の降順に並べ替えます。
  • ksort() : キー名に基づいて昇順に並べ替えます。
  • krsort() : キー名に基づいて降順に並べ替えます。

ソート機能例

次の例は、さまざまな並べ替え関数の基本的な使用法を示しています。

 $arr = array(6, 4, 10, 3, 7);

// 配列を小さい順に並べ替えます
sort($arr);
print_r($arr); // 出力:Array ( [0] => 3 [1] => 4 [2] => 6 [3] => 7 [4] => 10 )

// 配列を最大から最小の順に並べ替えます
rsort($arr);
print_r($arr); // 出力:Array ( [0] => 10 [1] => 7 [2] => 6 [3] => 4 [4] => 3 )

// 連想配列をキーで小さいものから大きいものに並べ替えます
$arr = array("a" => 10, "b" => 3, "c" => 7);
asort($arr);
print_r($arr); // 出力:Array ( [b] => 3 [c] => 7 [a] => 10 )

カスタム比較関数を使用して並べ替える

シナリオによっては、組み込みの並べ替え関数では複雑な並べ替えロジックを満足できない場合があります。この場合、usort()関数をカスタム比較関数と併用してこれを実現できます。

カスタム比較関数は次の値を返す必要があります。

  • 0: 2 つの要素が等しい
  • 1: 最初の要素が 2 番目の要素より大きい
  • -1: 最初の要素が 2 番目の要素より小さい

例:

 function compare_desc($a, $b) {
    return $b - $a;
}

usort($arr, "compare_desc");
print_r($arr); // 出力:Array ( [0] => 10 [1] => 7 [2] => 6 [3] => 4 [4] => 3 )

要約する

PHP の組み込みソート関数とカスタム比較関数を柔軟に使用することで、さまざまなソート ニーズを簡単に実現できます。単純な数値ソートであっても、複雑な多次元配列ソートであっても、PHP は完全なソリューションを提供します。