ホームページ  >  記事  >  バックエンド開発  >  PHPを使用して複数の配列をソートする方法

PHPを使用して複数の配列をソートする方法

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

PHP は、Web サイトやアプリケーションの開発で広く使用されている非常に人気のある開発言語です。 PHP では、配列は最も一般的に使用されるデータ型の 1 つであり、配列を使用してさまざまなデータを整理および保存できます。複数の配列をソートする必要がある場合、PHP を使用して複数の配列をソートする方法と、それらを他の操作と組み合わせる方法を理解する必要があります。

  1. sort() 関数

sort() 関数は、PHP で最もよく使用される配列の並べ替え関数の 1 つです。配列を昇順 (最小から最大) に並べ替えます。以下に例を示します。

$numbers = array(5, 3, 7, 1, 9);
sort($numbers);
print_r($numbers);

上記のコードを実行した出力は次のとおりです。

Array
(
    [0] => 1
    [1] => 3
    [2] => 5
    [3] => 7
    [4] => 9
)

上記の例では、まず、5 つの整数を含む $numbers という名前の配列を宣言します。次に、sort() 関数を使用して配列を昇順に並べ替え、print_r() 関数を使用して並べ替えられた結果を出力します。

sort() 関数は、新しい並べ替えられた配列を作成するのではなく、元の配列の順序を変更することに注意してください。元の配列の順序を保持する必要がある場合は、それを新しい配列にコピーして並べ替えることができます。

  1. asort() 関数

asort() 関数は配列を昇順に並べ替えることができますが、キーと値のペアの関係も保持します。以下は例です:

$students = array("Tom" => 75, "John" => 82, "Sarah" => 68, "Peter" => 93);
asort($students);
print_r($students);

上記のコードを実行した出力は次のとおりです:

Array
(
    [Sarah] => 68
    [Tom] => 75
    [John] => 82
    [Peter] => 93
)

上記の例では、4 つの名前付きキーを含む $students という名前の連想配列を宣言します。および「Tom」、「John」、「Sarah」、および「Peter」の対応する値。 asort() 関数を使用して配列をソートし、print_r() 関数を使用してソートされた結果を出力します。

sort() 関数と同様に、asort() 関数も元の配列の順序を変更します。元の配列の順序を保持する必要がある場合は、キーのソートに ksort() 関数を使用できます。

  1. array_multisort() 関数

array_multisort() 関数は、複数の配列を並べ替えることができ、配列内の値、キー、またはその両方を同時に並べ替えることができます。以下は例です:

$name = array("Tom", "John", "Sarah", "Mary");
$score = array(75, 82, 68, 90);
array_multisort($score, $name);
print_r($name);

上記のコードを実行した出力は次のとおりです:

Array
(
    [0] => Sarah
    [1] => Tom
    [2] => John
    [3] => Mary
)

上記の例では、$name と $score の 2 つの配列を宣言しました。 array_multisort() 関数を使用して $score 配列をソートし、ソートされた順序に従って $name 配列を並べ替えます。最後に、print_r() 関数を使用して $name 配列を出力します。

array_multisort() 関数は、新しいソートされた配列を作成するのではなく、元の配列の順序を変更することに注意してください。

  1. usort() 関数

usort() 関数は、PHP でのカスタム ソートに使用される関数です。自分で作成した比較関数を使用して配列を並べ替えることができます。以下は例です:

$students = array(
    array("name" => "Tom", "score" => 75),
    array("name" => "John", "score" => 82),
    array("name" => "Sarah", "score" => 68),
    array("name" => "Peter", "score" => 93)
);

function compare($a, $b) {
    return $a["score"] < $b["score"] ? -1 : 1;
}

usort($students, "compare");

foreach ($students as $student) {
    echo $student["name"] . " : " . $student["score"] . "<br>";
}

上記のコードを実行した出力は次のとおりです:

Sarah : 68
Tom : 75
John : 82
Peter : 93

上記の例では、4 つの要素を含む 2 次元配列 $students を宣言します。また、2 つのパラメーター $a と $b を受け取り、それらのスコアを比較し、比較結果に応じて -1 または 1 を返す比較関数 Compare() も作成しました。

usort() 関数を使用してcompare() 関数を呼び出し、$students 配列を並べ替えます。最後に、foreach() ループを使用してソートされた配列をループし、echo ステートメントを使用して各生徒の名前とスコアを出力します。

概要

PHP で配列を並べ替える方法は数多くあり、ニーズに応じて対応する関数を選択できます。 sort() 関数を使用して配列を昇順にソートし、asort() 関数を使用して配列を昇順にソートしてキーと値の関係を保持し、array_multisort() 関数を使用して複数の配列をソートし、usort() 関数を使用して並べ替えをカスタマイズします。これらの関数は、新しい並べ替えられた配列を作成するのではなく、元の配列の順序を変更することに注意してください。元の配列の順序を保持する必要がある場合は、それを新しい配列にコピーして並べ替えることができます。

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

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