【PHP8.x】uasortメソッドの使い方

uasortメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

uasortメソッドは、ユーザーが独自に定義した比較関数を用いて、イテレータが現在指している配列の値を基準にソートを実行するメソッドです。このソートの最大の特徴は、値が並べ替えられた後も、それぞれの値に対応する元のキーとの関連性が維持される点です。ソートの順序は、引数として渡すコールバック関数によって決まります。この関数は、比較する2つの値を引数として受け取り、最初の値が2番目の値より小さい、等しい、または大きいかに応じて、それぞれ負の整数、ゼロ、正の整数を返すように実装する必要があります。この仕組みにより、単純な昇順や降順だけでなく、オブジェクトの特定のプロパティを比較するなど、開発者が定義した複雑なルールに基づいて連想配列を柔軟に並べ替えることが可能になります。メソッドはソートが成功した場合にtrueを、失敗した場合にfalseを返します。

構文(syntax)

1<?php
2
3$array = [
4    'key_d' => 'lemon',
5    'key_a' => 'orange',
6    'key_b' => 'banana',
7    'key_c' => 'apple',
8];
9
10$iterator = new RecursiveArrayIterator($array);
11
12// ユーザー定義の比較関数を使い、キーと値の関連を維持したまま、値でソートします。
13$iterator->uasort(function (string $a, string $b): int {
14    return $a <=> $b;
15});
16
17?>

引数(parameters)

callable $callback

  • callable $callback: 配列の各要素とキーを比較するためのコールバック関数を指定します。この関数は、2つの引数(要素の値)を受け取り、それらを比較した結果を整数で返します。返り値は、比較結果に応じて以下のようになります。
    • 0 未満: $a は $b より小さい
    • 0: $a および $b は等しい
    • 0 より大きい: $a は $b より大きい

戻り値(return)

bool

uasortメソッドは、配列の要素をユーザー定義の比較関数でソートし、その成功・失敗を示す真偽値(trueまたはfalse)を返します。