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

PHPで配列をソートする方法

PHPz
リリース: 2023-04-17 17:18:27
オリジナル
534 人が閲覧しました

PHP は、主に Web 開発に使用される、広く使用されているオープン ソース スクリプト言語です。 PHP を使用して Web アプリケーションを開発する場合、データを並べ替える必要があることがよくあります。 PHP では、sort()、rsort()、asort()、arsort()、ksort()、krsort()、usort()、uasort()、uksort() などの関数を使用して配列を並べ替えることができます。 。これらの機能の使い方を以下に紹介します。

  1. sort() 関数

sort() 関数は、配列を昇順にソートするために使用される PHP の関数です。この関数は数値配列と文字列配列を並べ替えることができますが、並べ替えできるのは単一次元の配列のみです。コードは次のとおりです。

$numbers = array(4, 2, 8, 6);
sort($numbers);
print_r($numbers); // 输出:Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )
ログイン後にコピー

上記の例では、sort() 関数は数値配列 $numbers を昇順にソートし、結果を出力します。

  1. rsort() 関数

rsort() 関数は、配列を降順にソートするために使用される PHP の関数です。この関数は、ソート順序が降順に変更されることを除いて、sort() 関数に似ています。コードは次のとおりです。

$numbers = array(4, 2, 8, 6);
rsort($numbers);
print_r($numbers); // 输出:Array ( [0] => 8 [1] => 6 [2] => 4 [3] => 2 )
ログイン後にコピー

上記の例では、rsort() 関数は数値配列 $numbers を降順にソートし、結果を出力します。

  1. asort() 関数

asort() 関数は、配列を昇順にソートするために使用される PHP の関数です。sort() 関数とは異なります。 ) 関数 元の配列のキー値は保持されます。コードは次のとおりです。

$numbers = array("d"=>4, "b"=>2, "c"=>8, "a"=>6);
asort($numbers);
print_r($numbers); // 输出:Array ( [b] => 2 [d] => 4 [a] => 6 [c] => 8 )
ログイン後にコピー

上記の例では、asort() 関数は文字列配列 $numbers を昇順にソートし、キー値を元の配列に保持します。

  1. arsort() 関数

arsort() 関数は、配列を降順に並べ替えるために使用される PHP の関数です。asort() 関数と似ています。また、配列内の元のキー値も保持されます。コードは次のとおりです。

$numbers = array("d"=>4, "b"=>2, "c"=>8, "a"=>6);
arsort($numbers);
print_r($numbers); // 输出:Array ( [c] => 8 [a] => 6 [d] => 4 [b] => 2 )
ログイン後にコピー

上の例では、arsort() 関数は文字列配列 $numbers を降順に並べ替え、キー値を元の配列に保持します。

  1. ksort() 関数

ksort() 関数は、配列をキー名で昇順にソートするために使用される PHP の関数です。この関数は、単一次元の配列のみを並べ替えることができます。コードは次のとおりです。

$numbers = array("d"=>4, "b"=>2, "c"=>8, "a"=>6);
ksort($numbers);
print_r($numbers); // 输出:Array ( [a] => 6 [b] => 2 [c] => 8 [d] => 4 )
ログイン後にコピー

上の例では、ksort() 関数は文字列配列 $numbers をキー名の昇順に並べ替えます。

  1. krsort() 関数

krsort() 関数は、キー名の降順で配列をソートするために使用される PHP の関数です。この関数は、ソート順序が降順に変更されることを除いて、ksort() 関数に似ています。コードは次のとおりです。

$numbers = array("d"=>4, "b"=>2, "c"=>8, "a"=>6);
krsort($numbers);
print_r($numbers); // 输出:Array ( [d] => 4 [c] => 8 [b] => 2 [a] => 6 )
ログイン後にコピー

上の例では、krsort() 関数は文字列配列 $numbers をキー名の降順に並べ替えます。

  1. usort() 関数

usort() 関数は、配列をカスタムソートするための PHP の関数です。この関数は、並べ替え用の比較関数をカスタマイズする必要があります。比較関数は、比較結果を表す整数値を返します。最初の引数が 2 番目の引数より小さい場合は負の数が返され、最初の引数が 2 番目の引数と等しい場合は 0 が返され、最初の引数が 2 番目の引数より大きい場合は正の数が返されます。コードは次のとおりです。

function compare($a, $b) {
    if($a<$b)
        return -1;
    elseif($a==$b)
        return 0;
    else
        return 1;
}
$numbers = array(4, 2, 8, 6);
usort($numbers, "compare");
print_r($numbers); // 输出:Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )
ログイン後にコピー

上の例では、usort() 関数は数値配列 $numbers のカスタム昇順並べ替えを実行し、比較関数は Compare() 関数です。

  1. uasort() 関数

uasort() 関数は、配列の並べ替えをカスタマイズするために PHP で使用される関数です。usort() 関数とは異なり、uasort () 関数は元の配列のキー値を保持します。コードは次のとおりです。

function compare($a, $b) {
    if($a<$b)
        return -1;
    elseif($a==$b)
        return 0;
    else
        return 1;
}
$numbers = array("d"=>4, "b"=>2, "c"=>8, "a"=>6);
uasort($numbers, "compare");
print_r($numbers); // 输出:Array ( [b] => 2 [d] => 4 [a] => 6 [c] => 8 )
ログイン後にコピー

上の例では、uasort() 関数は文字列配列 $numbers に対してカスタムの昇順ソートを実行し、キー値を元の配列に保持します。

  1. uksort() 関数

uksort() 関数は、キー名による配列の並べ替えをカスタマイズするために使用される PHP の関数です。この関数は、並べ替え用の比較関数をカスタマイズする必要があります。比較関数は、比較結果を表す整数値を返します。コードは次のとおりです。

function compare($a, $b) {
    if($a<$b)
        return -1;
    elseif($a==$b)
        return 0;
    else
        return 1;
}
$numbers = array("d"=>4, "b"=>2, "c"=>8, "a"=>6);
uksort($numbers, "compare");
print_r($numbers); // 输出:Array ( [a] => 6 [b] => 2 [c] => 8 [d] => 4 )
ログイン後にコピー

上の例では、uksort() 関数は文字列配列 $numbers に対してキー名によるカスタムの昇順ソートを実行します。

概要

PHP には、配列をソートできるさまざまな関数があり、開発者はニーズに応じてソートに適切な関数を選択できます。配列の並べ替えをカスタマイズする必要がある場合は、usort()、uasort()、uksort() 関数を使用し、並べ替え用の比較関数をカスタマイズできます。配列をキー名でソートする必要がある場合は、ksort()、krsort()、および uksort() 関数を使用できます。元の配列のキー値を保持したい場合は、asort( )、arsort()、および uasort() 関数。

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

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