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

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

作成日: 更新日:

基本的な使い方

uasortメソッドは、ユーザーが定義した比較関数を使用して、ArrayIteratorオブジェクトが内部に持つ配列の値をソートするメソッドです。このソート処理の最大の特徴は、各値に対応するキーとの関連性を維持する点にあります。これは、連想配列の構造を保ったまま並べ替えを行いたい場合に非常に重要です。メソッドの引数には、比較ロジックを実装したコールバック関数を指定します。このコールバック関数は2つの引数を受け取り、それらを比較した結果を整数値で返します。具体的には、最初の引数が2番目の引数より小さいと判断した場合は負の整数、等しい場合は0、大きい場合は正の整数を返すように実装する必要があります。このメソッドは、オブジェクトの特定のプロパティ値に基づいてソートしたり、特殊な文字列比較ルールを適用したりするなど、標準のソート関数では対応できない複雑な順序付けを実現するために使用されます。ソートはオブジェクト内部の配列に対して直接行われ、メソッド自体の戻り値はありません。

構文(syntax)

1<?php
2
3// ソート対象のデータを持つ連想配列
4$array = ['d' => 'lemon', 'a' => 'orange', 'b' => 'banana', 'c' => 'apple'];
5
6// 配列からArrayIteratorオブジェクトを作成
7$iterator = new ArrayIterator($array);
8
9// ユーザー定義の比較関数(アロー関数)を用いて、
10// キーと値の関連性を維持したまま、値に基づいてソートします。
11$iterator->uasort(fn($a, $b) => $a <=> $b);
12
13// ソート後のイテレータをループして結果を出力
14foreach ($iterator as $key => $value) {
15    echo "{$key}: {$value}\n";
16}
17
18?>

引数(parameters)

callable $callback

  • callable $callback: 配列の各要素をソートするために使用されるコールバック関数

戻り値(return)

bool

ArrayIterator::uasort は、配列の要素をユーザー定義の関数でソートした結果を返します。ソートが成功した場合は true を、失敗した場合は false を返します。

【PHP8.x】uasortメソッドの使い方 | いっしー@Webエンジニア