関数 uasort

関数 uasort は、連想配列のキーを保持しながら、 要素の昇順で配列をソートします。

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

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

この関数は配列自体を変更します。

構文

phpuasort(array &$array, int $flags = SORT_REGULAR): bool

例

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

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

コード実行結果:

php[
  'b' => 1,
  'c' => 2,
  'e' => 3,
  'd' => 4,
  'a' => 5,
]

例

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

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

コード実行結果:

php[
  'b' => '1',
  'd' => '12',
  'a' => '123',
  'e' => '1234',
  'c' => '12345',
]

関連項目

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