usort関数

関数 usort は、配列を要素の値でソートします。 このため、ソートされた配列内の要素の順序を決定するコールバックを使用します。 関数は配列自体を変更します。

比較関数は整数を返す必要があります。 比較結果に応じて、ゼロより小さい、等しい、または大きい値です。

構文

phpusort(array &$array, callable $callback): bool

例

配列を要素の昇順でソートしてみましょう:

php<?php
  $arr = [1, 3, 2, 5, 4];
  
  function func($a, $b)
  {
    if ($a === $b) {
      return 0;
    } else if ($a < $b) {
      return -1;
    } else {
      return 1;
    }
  }
  
  usort($arr, 'func');
  var_dump($arr);
?>

コード実行結果:

php[1, 2, 3, 4, 5]

例

次に、配列を要素の降順でソートしてみましょう:

php<?php
  $arr = [1, 3, 2, 5, 4];
  
  function func($a, $b)
  {
    if ($a === $b) {
      return 0;
    } else if ($a > $b) {
      return -1;
    } else {
      return 1;
    }
  }
  
  usort($arr, 'func');
  var_dump($arr);
?>

コード実行結果:

php[1, 2, 3, 4, 5]

例

次に、配列要素の文字数で昇順にソートしてみましょう:

php<?php
  $arr = [
    '123',
    '1',
    '12345',
    '12',
    '1234',
  ];
  
  function func($a, $b)
  {
    if (strlen($a) === strlen($b)) {
      return 0;
    } else if (strlen($a) < strlen($b)) {
      return -1;
    } else {
      return 1;
    }
  }
  
  usort($arr, 'func');
  var_dump($arr);
?>

コード実行結果:

php[
  '1',
  '12',
  '123',
  '1234',
  '12345',
]

関連項目

  • 関数 sort,
    要素の昇順でソート
  • 関数 rsort,
    要素の降順でソート
  • 関数 ksort,
    キーの昇順でソート
  • 関数 krsort,
    キーの降順でソート
  • 関数 asort,
    キーを保持して要素の昇順でソート
  • 関数 arsort,
    キーを保持して要素の降順でソート
  • 関数 natsort,
    自然順ソート
  • 関数 natcasesort,
    大文字小文字を区別しない自然順ソート
  • 関数 usort,
    コールバックによるソート
  • 関数 uksort,
    コールバックによるキーでのソート
  • 関数 uasort,
    キーを保持したコールバックによるソート
  • 関数 array_multisort,
    複数の配列をソート