PHPで小さいものから大きいものまで並べ替える方法

PHPz
リリース: 2023-04-25 18:45:05
オリジナル
2425 人が閲覧しました

Web アプリケーションの開発では、データの並べ替えが必要になることがよくありますが、PHP はデータの並べ替えを容易にするプログラミング言語であり、組み込み関数を使用して並べ替え操作を実行できます。この記事では、PHPで小さいものから大きいものへのソートを実装する方法を紹介します。

1. 基本的なソート関数

PHP には、sort() と rsort() という 2 つの組み込みソート関数が用意されており、それぞれ順方向ソートと逆方向ソートに使用されます。これら 2 つの関数は、特定のルールに従ってソートされるように元の配列を変更します。同時に複数のルールに従ってソートする必要がない場合は、usort() と uasort() を使用できます。

  1. sort() 関数

sort() 関数は正順ソートに使用され、その基本的な構文は次のとおりです。 $array は、ソートされた配列の名前を意味します。$sort_flags オプションのパラメータは、ソート方法を制御するために使用されます。次の 4 つの値があります:

SORT_REGULAR: 従来の比較に従ってソートします。要素のデータ型が異なる場合、ソートされます。強制型変換;
  • SORT_NUMERIC: 数値比較によってソート、要素は比較前に数値型に変換されます;
  • SORT_STRING: ソート文字列比較による;
  • SORT_LOCALE_STRING : 現在のカルチャとの相対的な文字列比較によって並べ替えます。
  • $sort_flags パラメータが渡されない場合、デフォルトで SORT_REGULAR によって並べ替えられます。

sort() 関数が実行されると、元の配列は指定された並べ替え方法に従って小さい順に並べられます。

たとえば、次のコードは sort() 関数の基本的な使用法を示しています:

sort($array, $sort_flags);
ログイン後にコピー

結果は次のようになります:

$array = array(10, 5, 8, 15, 7);
sort($array);
print_r($array);
ログイン後にコピー

rsort() function
  1. rsort() 関数は、逆順に並べ替えるために使用されます。その基本的な構文は、大きいものから小さいものへと並べ替えられる点を除いて、sort() 関数と同じです。

たとえば、次のコードは rsort() 関数の使用法を示しています:

Array
(
    [0] => 5
    [1] => 7
    [2] => 8
    [3] => 10
    [4] => 15
)
ログイン後にコピー

結果は次のようになります:

$array = array(10, 5, 8, 15, 7);
rsort($array);
print_r($array);
ログイン後にコピー

2. 多次元配列の並べ替え

sort( ) および rsort() 関数は 1 次元配列のみをソートできますが、多次元配列をソートしたい場合は、usort() 関数を使用できます。

usort() 関数は比較関数をカスタマイズする必要があります。この関数は、比較する 2 つの配列要素である 2 つのパラメータを受け取ります。戻り値は整数です。最初の要素が 2 番目の要素より小さい場合, 並べ替えの場合は負の数値を返し、最初の要素が 2 番目の要素より大きい場合は正の数値を返し、2 つの要素が等しい場合は 0 を返します。

たとえば、次のコードは、usort() 関数を使用して多次元配列を並べ替える方法を示しています:

Array
(
    [0] => 15
    [1] => 10
    [2] => 8
    [3] => 7
    [4] => 5
)
ログイン後にコピー

結果は次のようになります:

$data = array(
    array('name' => 'Tom', 'age' => 25),
    array('name' => 'Tim', 'age' => 30),
    array('name' => 'Carl', 'age' => 20),
    array('name' => 'Bob', 'age' => 35),
);

// 自定义比较函数
function cmp($a, $b)
{
    if ($a['age'] > $b['age']) {
        return 1;
    } elseif ($a['age'] < $b[&#39;age&#39;]) {
        return -1;
    } else {
        return 0;
    }
}

usort($data, &#39;cmp&#39;);

print_r($data);
ログイン後にコピー

3. データを読み取るデータベース

実際のアプリケーションでは、並べ替えが必要なデータのほとんどはデータベースから読み取られ、SQL ステートメントの ORDER BY 句を使用してクエリ結果を並べ替えることができます。

たとえば、次の SQL ステートメントは、MySQL データベースの

users

テーブルから年齢別に小さいものから大きいものまでソートされています。

Array
(
    [0] => Array
        (
            [name] => Carl
            [age] => 20
        )

    [1] => Array
        (
            [name] => Tom
            [age] => 25
        )

    [2] => Array
        (
            [name] => Tim
            [age] => 30
        )

    [3] => Array
        (
            [name] => Bob
            [age] => 35
        )

)
ログイン後にコピー
これは、次のコマンドを実行すると取得できます。 PHP を介した上記の SQL ステートメント 年齢の小さい方から大きい方へ並べ替えられたユーザーのリスト。

4. 概要

この記事では、sort()、rsort()、usort()、および through などの組み込み関数を含む、PHP で小さいものから大きいものまで並べ替えるいくつかの方法を紹介します。 SQL ステートメントをソートする方法。開発者は、さまざまなニーズやデータ ソースに基づいて適切な方法を選択し、データの並べ替えを簡単に実装できます。

以上がPHPで小さいものから大きいものまで並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート