PHP では、配列は非常に一般的に使用されるデータ型であり、実際の開発では配列をソートする必要があることがよくあります。 PHP は、並べ替え操作を非常に便利かつ効率的に行うことができる、さまざまな並べ替えアルゴリズムと関数を提供します。この記事では、PHPにおける複数配列のソートの具体的な実装方法を紹介します。
I. 1 次元配列のソート
PHP は、ソート操作を便利かつ効率的に行うことができるさまざまなソート アルゴリズムと関数を提供します。その中で、最も一般的に使用される関数は、sort()、rsort()、asort()、arsort()、ksort()、krsort() で、これらはさまざまな型の配列を並べ替えるために使用されます。
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 )
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 )
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 サイトの他の関連記事を参照してください。