ホームページ >バックエンド開発 >PHPチュートリアル >PHP 関数ライブラリの usort() 関数の使用法の概要

PHP 関数ライブラリの usort() 関数の使用法の概要

王林
王林オリジナル
2023-06-27 08:49:141551ブラウズ

PHP は、開発者がよく使用する関数を多数備えた、広く使用されているプログラミング言語です。 usort() もその 1 つです。 usort() の主な機能は、指定された比較関数に従って配列をソートすることです。

usort() 関数の構文は次のとおりです。

usort(array $array, callable $cmp_function): bool

上記のコードでは、$array は並べ替える配列を表し、$cmp_function は呼び出し可能な比較関数です。戻り値はブール型で、並べ替えが成功したかどうかを示します。

以下は、usort() 関数の詳細な紹介です。

比較関数

usort() 関数で渡される比較関数は呼び出し可能、つまり呼び出して実行できる関数である必要があります。比較関数は通常、usort() を呼び出すときに、匿名関数を介して、または関数名を指定して定義されます。たとえば、次のような比較関数を定義できます。

function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

この比較関数では、$a$b はそれぞれ、usort によって渡される値を表します。 () 2 つのパラメータを比較する関数。独自のニーズに応じて、比較関数の実装方法をカスタマイズできます。比較関数の戻り値は 0、-1、または 1 です。 0 が返された場合は 2 つのパラメータが等しいことを意味し、-1 が返された場合は $a$b より小さいことを意味し、1 が返された場合は $ を意味します。 a$b より小さいです。

使用法

次に、usort() 関数を使用して配列を並べ替える方法を見てみましょう。次の要素を含む配列があるとします。

$array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3];

この配列を並べ替える場合は、usort() 関数を使用できます:

usort($array, "cmp");

Here"cmp" は定義した比較関数の名前です。上記のコードを実行すると、ソートされた配列を取得できます。

[1, 1, 2, 3, 3, 4, 5, 5, 6, 9]

usort() 関数は、数値だけでなく、文字列、オブジェクトなどもソートできます。それぞれの属性値を持つ複数のオブジェクトを含む配列があると想像してください:

$students = [
    ["name" => "Alice", "age" => 18],
    ["name" => "Bob", "age" => 20],
    ["name" => "Charlie", "age" => 19],
];

これらの学生を年齢別に並べ替えたい場合は、usort() 関数を使用して新しい比較関数を定義できます:

function cmp_age($a, $b) {
    if ($a["age"] == $b["age"]) {
        return 0;
    }
    return ($a["age"] < $b["age"]) ? -1 : 1;
}

この比較関数では、学生オブジェクトの年齢属性を比較することによって並べ替えます。 usort() 関数を使用して、この学生配列を並べ替えます:

usort($students, "cmp_age");

上記のコードを実行した後、年齢に応じて学生を小から大まで並べ替えることができます:

[
    ["name" => "Alice", "age" => 18],
    ["name" => "Charlie", "age" => 19],
    ["name" => "Bob", "age" => 20],
]

Notes

usort() 関数を使用する場合は、次の問題に注意する必要があります。

  1. 渡される比較関数は呼び出し可能である必要があります。つまり、呼び出して実行できる関数である必要があります。 。
  2. 比較関数の戻り値は 0、-1、または 1 である必要があります。
  3. usort() 関数は元の配列を直接変更するため、使用する場合は配列が他の場所で参照されて使用されないか注意する必要があります。
  4. 配列内に等しい要素が 2 つ以上ある場合、usort() 関数はそれらの順序を保証できません。

概要

usort() 関数は、PHP 開発で非常に一般的に使用される関数であり、配列を便利に並べ替えることができます。これを使用する場合は、比較関数を定義し、パラメータとして usort() 関数に渡す必要があります。注意すべき詳細がいくつかありますが、全体として、usort() 関数の使用は非常に簡単です。

以上がPHP 関数ライブラリの usort() 関数の使用法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。