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

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

uasort()関数とは

PHPのuasort()関数は、ユーザー定義の比較関数を使って配列をソートする関数です。最大の特徴は、ソート後もキーと値の関連付け(インデックスの対応関係)が保持されるという点です。連想配列を値の順序で並べ替えたい場合に特に便利です。

構文

uasort(arr, custom_function)

パラメータ

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

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

戻り値

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

使用例

以下は、uasort()関数を使って連想配列を値の昇順にソートするサンプルコードです。

<?php
function display($x,$y) {
    if ($x==$y) return 0;
    return ($x<$y)?-1:1;
}
$myarr = array("a"=>30,"b"=>12,"c"=>75);
uasort($myarr,"display");

foreach($myarr as $x=>$x_value) {
    echo "Key=" . $x . " Value=" . $x_value;
    echo "<br>";
}
?>

実行結果

上記のコードを実行すると、次のように出力されます。

Key=b Value=12
Key=a Value=30
Key=c Value=75

他のソート関数との違い

usort()は配列をソートする際にキーを振り直してしまうため、元のキー情報は失われます。一方、uasort()はキーと値の結び付きを維持したままソートを行います。また、キーの方でソートしたい場合はuksort()を、単純な値のソートでキーの関連付けを保ちたい場合はasort()を使用するとよいでしょう。用途に応じてこれらの関数を使い分けることで、柔軟な配列操作が可能になります。

  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のuasort()関数とは?使い方とサンプルコードを解説

    uasort()関数とはPHPのuasort()関数は、ユーザー定義の比較関数を使って配列をソートする関数です。最大の特徴は、ソート後もキーと値の関連付け(インデックスの対応関係)が保持されるという点です。連想配列を値の順序で並べ替えたい場合に特に便利です。構文uasort(arr, custom_function)パラメータarr − ソート対象となる配列を指定します。custom_function − 比較に使用するコールバック関数を指定します。この関数は、最初の引数が2番目の引数より小さい場合は0未満の整数、等しい場合は0、大きい場合は0より大きい整数を返す必要があります。戻り値uaso