ホームページ >バックエンド開発 >PHPの問題 >PHPで2次元配列をソートする方法は何ですか

PHPで2次元配列をソートする方法は何ですか

PHPz
PHPzオリジナル
2023-04-26 10:29:281084ブラウズ

PHP では、2 次元配列は非常に一般的に使用されるデータ型です。これは、複数の 1 次元配列で構成される配列です。各 1 次元配列には複数の要素を含めることができます。 2 次元配列を扱う場合、特定の要素の値に基づいて配列全体を並べ替える必要がある場合があります。この記事では、PHP で 2 次元配列の並べ替えを実装するいくつかの方法を紹介します。

  1. array_multisort() 関数の使用

PHP の array_multisort() 関数を使用すると、複数の配列または多次元配列を並べ替えることができます。 2 次元配列では、この関数を使用して、対応する他の 1 次元配列と同じキーと値の関係を保持しながら、指定した 1 次元配列を並べ替えることができます。

サンプル コード:

<?php
$students = array(
    array("name" => "Tom", "score" => 80),
    array("name" => "Mary", "score" => 90),
    array("name" => "Jack", "score" => 85),
);

// 按成绩升序排序
$sort_by_score = array();
foreach ($students as $key => $row) {
    $sort_by_score[$key] = $row["score"];
}
array_multisort($sort_by_score, SORT_ASC, $students);

// 输出结果
foreach ($students as $row) {
    echo $row["name"] . " " . $row["score"] . "\n";
}
?>

上記のコードでは、最初に 2 次元配列 $students が定義されており、各 1 次元配列には学生の名前と成績が含まれています。次に、ソート後に対応関係が保持されるように、各 1 次元配列に一意のキー値を与えます。

次に、foreach ループを使用して $students 配列を走査し、「score」要素の値に基づいて $sort_by_score 配列を生成します。最後に、array_multisort() 関数を呼び出して、$sort_by_score 配列に従って $students 配列を並べ替えます。コード内の SORT_ASC は昇順を意味します。

  1. usort() 関数を使用する

PHP の usort() 関数を使用すると、配列の並べ替えをカスタマイズでき、独自の並べ替えルールを定義できます。ニーズ。 2 次元配列では、この関数を使用して、値に基づいて要素を並べ替えることができます。

サンプル コード:

<?php
$students = array(
    array("name" => "Tom", "score" => 80),
    array("name" => "Mary", "score" => 90),
    array("name" => "Jack", "score" => 85),
);

// 根据成绩排序
usort($students, function ($a, $b) {
    return $a["score"] < $b["score"] ? 1 : -1;
});

// 输出结果
foreach ($students as $row) {
    echo $row["name"] . " " . $row["score"] . "\n";
}
?>

上記のコードでは、usort() 関数を使用して $students 配列を並べ替えます。このうち、渡される 2 番目のパラメーターは、並べ替え規則を定義するために使用される匿名関数です。この例では、学生を成績に基づいて降順に並べ替え、結果を出力します。

  1. uasort() 関数を使用する

usort() 関数とは異なり、PHP の uasort() 関数は配列要素のキーと値の関係を保持できます。これは、並べ替え後も、各要素のキー値が前の配列と同じであることを意味します。

サンプル コード:

<?php
$students = array(
    "Tom" => array("score" => 80),
    "Mary" => array("score" => 90),
    "Jack" => array("score" => 85),
);

// 根据成绩排序
uasort($students, function ($a, $b) {
    return $a["score"] < $b["score"] ? 1 : -1;
});

// 输出结果
foreach ($students as $name => $row) {
    echo $name . " " . $row["score"] . "\n";
}
?>

上記のコードでは、連想配列 $students を定義します。各要素のキー値は生徒の名前、対応する値は学年です。次に、uasort() 関数を使用して、キーと値の関係を維持しながら $students 配列を並べ替えます。最後にソート結果を出力します。

概要:

PHP で 2 次元配列の並べ替えを実装するには、さまざまな方法があります。この記事では、最も一般的に使用される 3 つの方法、array_multisort() 関数の使用と usort() の使用を紹介します。 ) 関数を使用し、uasort() 関数を使用します。これらの関数を並べ替えに使用する場合、必要に応じて並べ替えルールを定義し、配列要素のキーと値の関係を保存するかどうかを指定できます。

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

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