ホームページ  >  記事  >  バックエンド開発  >  PHP配列ソートのサイズを区別する方法

PHP配列ソートのサイズを区別する方法

PHPz
PHPzオリジナル
2023-04-20 13:52:44518ブラウズ

PHP プログラミングでは、配列のソートは非常に一般的な要件です。配列をソートするときは、要素のサイズを区別する方法を知る必要があります。この記事では、PHP で配列のサイズを設定する方法と配列を並べ替える方法を紹介します。

配列要素のサイズ比較

PHP では、==、===、!=、<>、!==、<、>、< ; を使用できます。 =、>= これらの演算子は要素のサイズ比較を実行します。ただし、これらの演算子はスカラー データ型 (int、float、string など) で使用できますが、配列で使用するといくつかの問題が発生します。

<、>、<=、>= 演算子を使用して配列を比較すると、PHP は内部で配列を文字列に変換し、文字列のサイズを比較します。これは予期せぬ事態が発生しやすいものです。結果。

このような問題を回避するには、特別な関数を使用して配列の要素を比較する必要があります。よく使用される関数をいくつか紹介します。

strcmp 関数

strcmp 関数は、2 つの文字列のサイズを比較し、整数を返すために使用されます。最初の文字列が 2 番目の文字列より小さい場合は負の数値が返され、2 つの文字列が等しい場合は 0 が返され、最初の文字列が 2 番目の文字列より大きい場合は正の数値が返されます。

たとえば、strcmp 関数を使用して、次のように 2 つの単語「hello」と「world」のサイズを比較できます。

echo strcmp("hello", "world"); // 输出 -15

この例では、「hello」の方が小さいです。したがって、strcmp 関数は負の数を返します。

sort 関数

sort 関数は、配列を昇順に並べ替えるのに使用されます。ソート関数は配列をその場でソートします。つまり、配列のキー値はソート後に変更されません。

sort 関数は、次のような配列パラメータを受け取ります。

$numbers = array(3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5);
sort($numbers);
print_r($numbers); // 输出 Array ( [0] => 1 [1] => 1 [2] => 2 [3] => 3 [4] => 3 [5] => 4 [6] => 5 [7] => 5 [8] => 5 [9] => 6 [10] => 9 )

上の例では、sort 関数は $numbers 配列を昇順に並べ替え、並べ替えられた結果を出力します。

rsort 関数

rsort 関数は sort 関数と同じで、配列の並べ替えに使用されます。違いは、 rsort 関数を使用して配列を降順に並べ替えることです。

rsort 関数は、配列に対してインプレース操作も実行します。例:

$numbers = array(3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5);
rsort($numbers);
print_r($numbers); // 输出 Array ( [0] => 9 [1] => 6 [2] => 5 [3] => 5 [4] => 5 [5] => 4 [6] => 3 [7] => 3 [8] => 2 [9] => 1 [10] => 1 )

上の例では、rsort 関数は $numbers 配列を降順に並べ替え、並べ替えられた結果を出力します。 。

array_multisort 関数

array_multisort 関数は、多次元配列を並べ替えることができる強力な並べ替え関数です。 array_multisort 関数は 1 つ以上の配列引数を受け取り、指定されたルールに従ってこれらの配列を並べ替えます。

たとえば、array_multisort 関数を使用して、生徒のグループの得点を並べ替えることができます。

$students = array(
    array('name' => 'Tom', 'score' => 90),
    array('name' => 'John', 'score' => 80),
    array('name' => 'Mike', 'score' => 85),
    array('name' => 'Mary', 'score' => 95),
    array('name' => 'Lisa', 'score' => 88)
);

foreach ($students as $key => $value) {
    $scores[$key] = $value['score'];
    $names[$key] = $value['name'];
}

array_multisort($scores, SORT_DESC, $names, SORT_ASC, $students);

print_r($students);

上の例では、最初に生徒の得点と名前を 2 つの配列 $ に保存します。スコアと $name。次に、array_multisort 関数を使用して $scores 配列と $names 配列を並べ替え、並べ替えた結果を $students 配列に適用します。最後に、$students 配列を出力して、スコアで降順、名前で昇順に並べ替えた結果を取得します。

概要

PHP で配列を並べ替える場合、要素のサイズを区別する方法を知る必要があります。予期しない結果を避けるには、比較に特殊な関数を使用する必要があります。この記事では、効率的なコードを迅速に作成するのに役立つ、一般的に使用される比較関数と並べ替え関数をいくつか紹介します。

以上がPHP配列ソートのサイズを区別する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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