【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)を返します。