usort関数
関数 usort は、配列を要素の値でソートします。
このため、ソートされた配列内の要素の順序を決定するコールバックを使用します。
関数は配列自体を変更します。
比較関数は整数を返す必要があります。 比較結果に応じて、ゼロより小さい、等しい、または大きい値です。
構文
usort(array &$array, callable $callback): bool
例
配列を要素の昇順でソートしてみましょう:
<?php
$arr = [1, 3, 2, 5, 4];
function func($a, $b)
{
if ($a === $b) {
return 0;
} else if ($a < $b) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
コード実行結果:
[1, 2, 3, 4, 5]
例
次に、配列を要素の降順でソートしてみましょう:
<?php
$arr = [1, 3, 2, 5, 4];
function func($a, $b)
{
if ($a === $b) {
return 0;
} else if ($a > $b) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
コード実行結果:
[1, 2, 3, 4, 5]
例
次に、配列要素の文字数で昇順にソートしてみましょう:
<?php
$arr = [
'123',
'1',
'12345',
'12',
'1234',
];
function func($a, $b)
{
if (strlen($a) === strlen($b)) {
return 0;
} else if (strlen($a) < strlen($b)) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
コード実行結果:
[
'1',
'12',
'123',
'1234',
'12345',
]
関連項目
-
関数
sort,
要素の昇順でソート -
関数
rsort,
要素の降順でソート -
関数
ksort,
キーの昇順でソート -
関数
krsort,
キーの降順でソート -
関数
asort,
キーを保持して要素の昇順でソート -
関数
arsort,
キーを保持して要素の降順でソート -
関数
natsort,
自然順ソート -
関数
natcasesort,
大文字小文字を区別しない自然順ソート -
関数
usort,
コールバックによるソート -
関数
uksort,
コールバックによるキーでのソート -
関数
uasort,
キーを保持したコールバックによるソート -
関数
array_multisort,
複数の配列をソート