【PHP8.x】uksortメソッドの使い方
uksortメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
uksortメソッドは、ユーザーが定義した比較関数を用いて、ArrayObjectオブジェクトの要素をキーに基づいてソート(並べ替え)を実行するメソッドです。このメソッドは、単純なアルファベット順や数値順ではなく、開発者が指定した独自のルールに従ってキーを並べ替えたい場合に非常に便利です。ソートを実行するには、引数として比較ロジックを実装したコールバック関数を渡す必要があります。このコールバック関数は、比較する2つのキーを引数として受け取ります。そして、1つ目のキーが2つ目のキーより小さいと判断した場合は負の整数、両者が等しい場合は0、1つ目が大きい場合は正の整数を返すように実装します。uksortメソッドは、このコールバック関数が返す値に基づいて、全てのキーの正しい順序を決定します。このソート処理はオブジェクトの内容を直接変更し、キーと値の関連付けは維持されます。メソッドの実行が成功した場合、PHP 8以降では常にtrueが返されます。これにより、複雑な順序付けが必要なキーを持つデータ構造も柔軟に扱うことが可能になります。
構文(syntax)
1<?php 2 3// ソート対象の ArrayObject を作成します 4$arrayObject = new ArrayObject([ 5 'lemon' => 1, 6 'orange' => 2, 7 'banana' => 3, 8 'apple' => 4, 9]); 10 11// キーを文字列の長さで比較する関数を定義します 12$keyCompareFunc = function (string $key1, string $key2): int { 13 return strlen($key1) <=> strlen($key2); 14}; 15 16// ユーザー定義の関数を使って、キーで配列をソートします 17$arrayObject->uksort($keyCompareFunc); 18 19// ソート結果を出力します 20print_r($arrayObject); 21 22?>
引数(parameters)
callable $callback
- callable $callback: 配列のキーをソートする比較関数。2つの引数を受け取り、それらを比較した結果を整数で返します。
戻り値(return)
true
uksort メソッドは、配列のキーをソートする操作が成功したかどうかを示す真偽値 (true) を返します。