PHP入門 配列関数 自作のルールで配列を並べ替える(usort関数)
usrot関数を利用することで、標準的なソート関数では表現できない順序に基づいてソートできます。
構文:usort関数
usort(array &$array , callable $callback):bool
&$array | ソート対象の配列 |
$callback | ソート規則を表した関数 |
引数$callback(無名関数)は、以下のルールに則っていなければなりません。
- 引数は比較する配列要素(2個)
- 第1引数が第2引数よりも大きい場合は正数、小さい場合は負数、等しい場合は0を返す
例:
<?php
//単位を昇順に準備
$keys = ['十','百','千','万','億','兆','京'];
//ソート対象の配列
$data = ['千','百','億','十','京'];
//指定された単位で配列$dataをソート
usort($data, function($a,$b) use ($keys) {
return array_search($a, $keys) <=> array_search($b, $keys);
});
print_r($data);