PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのusort()関数とは?使い方とサンプルコードを解説

PHPのusort()関数は、ユーザーが定義した比較関数を使って、配列を値に基づいてソートするための関数です。キーと値の関連付けは保持されず、ソート後には新しいインデックス番号が割り当てられます。

構文

usort(arr, custom_function)

パラメータ

  • arr − ソート対象となる配列を指定します。

  • custom_function − 比較に使用するコールバック関数です。第1引数が第2引数より小さい場合は0未満の整数、等しい場合は0、大きい場合は0より大きい整数を返す必要があります。

戻り値

usort()関数は、ソートが成功した場合にTRUEを、失敗した場合にFALSEを返します。

使用例

以下は、usort()関数を使って数値の配列を昇順にソートする例です。

<?php
function display($x, $y) {
    if ($x == $y) return 0;
    return ($x < $y) ? -1 : 1;
}
$myarr = array(39, 23, 78, 55, 99, 120);
usort($myarr, "display");

for ($i = 0; $i < count($myarr); $i++) {
    echo $myarr[$i];
    echo "<br>";
}
?>

出力結果

上記のコードを実行すると、配列が昇順にソートされて以下のように出力されます。

23
39
55
78
99
120

補足:PHP 7以降なら宇宙船演算子が便利

PHP 7以降では、宇宙船演算子(<=>)を使うことで、比較関数をより簡潔に記述できます。

usort($myarr, function($x, $y) {
    return $x <=> $y;
});

この書き方なら、if文による分岐が不要になり、コードの可読性も向上します。また、無名関数(クロージャ)を直接渡せるため、比較用の関数を別途定義する手間も省けます。

  1. PHPのlog()関数とは?自然対数の計算方法と使い方を解説

    定義と使い方log() 関数は、数値の自然対数(natural logarithm)を計算します。対数とは、指数関数の逆演算のことです。たとえば 102=100 という関係は「log10100=2」と表せます。自然対数はオイラー数 e を底として計算され、PHP では定義済み定数 M_E によって e の値(2.7182818284590452354)が提供されています。具体例を挙げると、exp(4.60517018599)=100(つまり e4.60517018599=100)が成り立つため、loge100=4.60517018599 となります。PHP では、この自然対数(loge)を l

  2. PHPのlcg_value()関数とは?乱数生成の基本と使い方を解説

    lcg_value()関数の定義と使い方lcg_value()関数は、0から1までの範囲でランダムな数値(浮動小数点数)を生成するPHP組み込み関数です。「LCG」とは「線形合同法(Linear Congruential Generator)」の略称です。この手法は、不連続な区分線形方程式を用いて擬似乱数列を計算するアルゴリズムで、擬似乱数生成アルゴリズムの中でも最も古くから知られているものの一つです。構文lcg_value ( void ) : floatパラメータこの関数は引数を受け取りません。戻り値lcg_value()関数は、0.0以上1.0以下の範囲にある擬似乱数のfloat値を返し