ホームページ > バックエンド開発 > PHPの問題 > PHPにおける複数配列のソートの具体的な実装方法についてお話します。

PHPにおける複数配列のソートの具体的な実装方法についてお話します。

PHPz
リリース: 2023-04-18 09:40:40
オリジナル
637 人が閲覧しました

PHP では、配列は非常に一般的に使用されるデータ型であり、実際の開発では配列をソートする必要があることがよくあります。 PHP は、並べ替え操作を非常に便利かつ効率的に行うことができる、さまざまな並べ替えアルゴリズムと関数を提供します。この記事では、PHPにおける複数配列のソートの具体的な実装方法を紹介します。

I. 1 次元配列のソート

PHP は、ソート操作を便利かつ効率的に行うことができるさまざまなソート アルゴリズムと関数を提供します。その中で、最も一般的に使用される関数は、sort()、rsort()、asort()、arsort()、ksort()、krsort() で、これらはさまざまな型の配列を並べ替えるために使用されます。

  1. sort() および rsort()

sort() および rsort() 関数は、1 次元配列を昇順 (小さい順から順に) ソートするために使用されます。大) と降順 (最大から最小へ) で並べ替えられます。 sort() 関数は要素を昇順に並べ替え、rsort() 関数は要素を降順に並べ替えます。

次は、sort() 関数を使用して 1 次元配列を昇順に並べ替える例です。

<?php
$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
print_r($fruits);
?>
ログイン後にコピー

出力結果:

Array
(
    [0] => apple
    [1] => banana
    [2] => lemon
    [3] => orange
)
ログイン後にコピー

以下は、 rsort() 関数を使用して 1 次元配列を昇順にソートする例: 1 次元配列を降順にソートする例:

<?php
$fruits = array("lemon", "orange", "banana", "apple");
rsort($fruits);
print_r($fruits);
?>
ログイン後にコピー

出力結果:

Array
(
    [0] => orange
    [1] => lemon
    [2] => banana
    [3] => apple
)
ログイン後にコピー
  1. asort() および arsort()

asort() および arsort () 関数は、1 次元配列を昇順 (小さいものから大きいものへ) および降順 (大きいものから小さいものへ) にソートするために使用されます。 )。 sort() および rsort() とは異なり、asort() および arsort() 関数は配列のインデックス関係を変更せずに維持します。

以下は、asort() 関数を使用して 1 次元配列を昇順に並べ替える例です。

<?php
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);
asort($age);
print_r($age);
?>
ログイン後にコピー

出力結果:

Array
(
    [Peter] => 35
    [Ben] => 37
    [Joe] => 43
)
ログイン後にコピー

以下は、 asort() 関数を使用して 1 次元配列を昇順にソートする例: 1 次元配列を降順にソートする例:

<?php
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);
arsort($age);
print_r($age);
?>
ログイン後にコピー

出力結果:

Array
(
    [Joe] => 43
    [Ben] => 37
    [Peter] => 35
)
ログイン後にコピー
  1. ksort() と krsort()

ksort() と krsort () 関数は、1 次元配列を昇順 (小さいものから大きいものへ) または降順 (大きいものから大きいものへ) にソートするために使用されます。小)キー​​で。 ksort() 関数はキー値で昇順にソートし、krsort() 関数はキー値で降順にソートします。

次は、ksort() 関数を使用して、1 次元配列をキーによって昇順に並べ替える例です。

<?php
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);
ksort($age);
print_r($age);
?>
ログイン後にコピー

出力結果:

Array
(
    [Ben] => 37
    [Joe] => 43
    [Peter] => 35
)
ログイン後にコピー

次のkrsort() の使用例 1 次元配列をキーで降順にソートする関数の例:

<?php
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);
krsort($age);
print_r($age);
?>
ログイン後にコピー

出力結果:

Array
(
    [Peter] => 35
    [Joe] => 43
    [Ben] => 37
)
ログイン後にコピー

II. 多次元配列のソート

多次元配列のソートの場合、「1 次元配列の要素をソートするには」に従ってソートすると、sort()、rsort()、asort()、および arsort() の 4 つの関数を使用できます。 。ただし、多次元配列の他のキーでソートする必要がある場合は、usort() 関数を使用する必要があります。

usort() 関数を使用すると、さまざまな並べ替えのニーズに合わせて並べ替え関数をカスタマイズできます。並べ替え関数をカスタマイズすると、比較する 2 つの要素を参照する 2 つのパラメーターを受け取ります。これら 2 つの要素の比較結果が 0 未満の場合は $elem1 を $elem2 の前に置き、それ以外の場合は $elem1 を $elem2 の後に置きます。

次は、usort() 関数を使用して多次元配列を並べ替える例です。

<?php
$cars = array(
    array("Volvo",22,18),
    array("BMW",15,13),
    array("Saab",5,2),
    array("Land Rover",17,15)
);

function my_sort($a,$b)
{
    if ($a[0] == $b[0]) return 0;
    return ($a[0] < $b[0]) ? -1 : 1;
}

usort($cars, "my_sort");

foreach ($cars as $car) {
    echo $car[0] . " " . $car[1] . " " . $car[2] . "<br>";
}
?>
ログイン後にコピー

出力結果:

BMW 15 13
Land Rover 17 15
Saab 5 2
Volvo 22 18
ログイン後にコピー

上記の例では、次のように定義します。 my_sort () 関数。配列の最初の要素を比較するために使用されます。次に、usort() 関数を呼び出し、並べ替える多次元配列とカスタム並べ替え関数名を usort() 関数に渡します。並べ替えが完了したら、foreach ステートメントを使用して並べ替えられた結果を調べます。

要約すると、PHP は、さまざまな並べ替えのニーズを満たすために、さまざまな並べ替えアルゴリズムと関数を提供します。 1 次元配列であろうと多次元配列であろうと、PHP は操作するためのさまざまなソート関数を提供しており、配列を簡単かつ便利にソートできるようになります。

以上がPHPにおける複数配列のソートの具体的な実装方法についてお話します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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