【PHP8.x】uksortメソッドの使い方
uksortメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『uksortメソッドは、ユーザーが定義した比較関数を用いて、配列のキーに基づいてエントリをソートするメソッドです。このメソッドは、RecursiveArrayIteratorオブジェクトが現在指している配列に対して操作を行います。ソートの順序は、引数として渡されるコールバック関数によって決定されます。このコールバック関数は2つのキーを引数として受け取り、それらを比較した結果を整数値で返さなければなりません。具体的には、最初のキーが2番目のキーより小さいと判断した場合は負の整数を、等しい場合は0を、大きい場合は正の整数を返すように実装します。この仕組みにより、通常の辞書順や数値順では実現できない、独自の複雑なルールに基づいたキーのソートが可能になります。ソート処理はキーと値の関連性を維持したまま行われるため、ソート後も各キーに対応する値は変わりません。メソッドの返り値は、ソートが成功した場合にはtrueを、失敗した場合にはfalseを返します。多次元配列を扱う際に、特定の階層の配列を特殊な順序で並べ替えたい場合に有効なメソッドです。』
構文(syntax)
1<?php 2 3$array = ['zulu' => 1, 'alpha' => 2, 'bravo' => 3]; 4$iterator = new RecursiveArrayIterator($array); 5 6$iterator->uksort(fn($key1, $key2) => strcmp($key1, $key2)); 7 8?>
引数(parameters)
callable $callback
- callable $callback: 配列のキーと値を受け取り、ソート順を決定するコールバック関数
戻り値(return)
bool
このメソッドは、配列のキーを昇順にソートする処理が成功したかどうかを示す真偽値(bool)を返します。ソートが成功した場合は true を、失敗した場合は false を返します。