ホームページ >バックエンド開発 >PHPチュートリアル >PHP で、配列値の比較に基づいて配列を並べ替えるにはどうすればよいですか?

PHP で、配列値の比較に基づいて配列を並べ替えるにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-05-03 09:06:01919ブラウズ

PHP で配列をソートする方法は次のとおりです。sort() 関数を使用して昇順にソートします。 rsort() 関数を使用して降順に並べ替えます。 asort() 関数を使用して、連想配列内の値を昇順に並べ替えます。 arsort() 関数を使用して、連想配列の値を降順に並べ替えます。より複雑な並べ替えには、カスタム比較関数を使用します。

在 PHP 中,如何根据数组值的比较对数组进行排序?

配列値の比較に基づいて PHP 配列を並べ替える方法

PHP では、PHP 配列に基づいて並べ替える方法が多数あります。配列値の比較時 比較により配列がソートされます。この記事では、組み込み関数 sort()rsort()asort()arsort() の使用方法を紹介します。およびカスタム比較関数 配列を並べ替える一般的な方法。

sort() 関数を使用します:

sort() この関数は、配列内の値を次の順序で並べ替えます。小から大へ昇順。

$arr = [3, 5, 2, 7, 1];
sort($arr);
print_r($arr); // 输出: [1, 2, 3, 5, 7]

rsort() 関数を使用します:

rsort() この関数は配列内の値を並べ替えます大から小へ 小さい順に。

$arr = [3, 5, 2, 7, 1];
rsort($arr);
print_r($arr); // 输出: [7, 5, 3, 2, 1]

asort() 関数を使用します:

##asort() この関数は連想配列内の値を並べ替えます。小から小へ 大の昇順、キーは変更されません。

$arr = [
    "name" => "John",
    "age" => 30,
    "city" => "New York"
];
asort($arr);
print_r($arr); 
// 输出: [
//     "age" => 30,
//     "city" => "New York",
//     "name" => "John"
// ]

arsort() 関数を使用します:

arsort() この関数は、連想配列内の値を並べ替えます。配列 (大から大) 降順で並べ替えます。キーは変更されません。

$arr = [
    "name" => "John",
    "age" => 30,
    "city" => "New York"
];
arsort($arr);
print_r($arr); 
// 输出: [
//     "name" => "John",
//     "city" => "New York",
//     "age" => 30
// ]

カスタム比較関数を使用する:

より複雑な並べ替え要件の場合は、カスタム比較関数を使用できます。比較関数は 2 つの引数を受け取り、最初の引数が 2 番目の引数より小さいか、等しいか、大きいかに応じて、-1、0、または 1 を返します。

function custom_sort($a, $b) {
    return strcmp($a["name"], $b["name"]);
}

$arr = [
    ["name" => "John", "age" => 30],
    ["name" => "Mary", "age" => 25],
    ["name" => "Bob", "age" => 35]
];
usort($arr, "custom_sort");
print_r($arr); 
// 输出: [
//     ["name" => "Bob", "age" => 35],
//     ["name" => "John", "age" => 30],
//     ["name" => "Mary", "age" => 25]
// ]

実践的なケース:

次は、

sort() 関数を使用してビデオの配列を並べ替える方法を示す実践的なケースです。ゲームのキャラクターを名前順に昇順に並べ替えます:

$characters = [
    ["name" => "Mario", "level" => 5],
    ["name" => "Luigi", "level" => 3],
    ["name" => "Donkey Kong", "level" => 7]
];

sort($characters);
print_r($characters); 
// 输出: [
//     ["name" => "Donkey Kong", "level" => 7],
//     ["name" => "Luigi", "level" => 3],
//     ["name" => "Mario", "level" => 5]
// ]

以上がPHP で、配列値の比較に基づいて配列を並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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