PHPでは、さまざまな組み込み関数を使用して配列のソートを実現できます。簡単な配列を整理する方法を見てみましょう。
単純な数値配列の並べ替え:
昇順で単純な数値配列を並べ替えるには、 sort()
関数を使用できます。これが例です:
<code class="php">$numbers = array(4, 2, 8, 6, 1); sort($numbers); print_r($numbers);</code>
これは出力されます:
<code>Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 6 [4] => 8 )</code>
単純な連想配列のソート:
連想配列の場合、 asort()
関数を使用して、値でソートしながらキー価値の関連性を維持できます。これが例です:
<code class="php">$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); asort($fruits); print_r($fruits);</code>
これは出力されます:
<code>Array ( [c] => apple [b] => banana [d] => lemon [a] => orange )</code>
PHPは、異なる基準に基づいて配列をソートするためのいくつかの関数を提供します。以下は、メインソート関数のリストです。
sort() :配列を昇順で並べ替え、キーを0から始まる連続数値インデックスにリセットします。
<code class="php">sort($array);</code>
rsort() :配列を下降順に並べ替え、キーを0から始まる連続数値インデックスにリセットします。
<code class="php">rsort($array);</code>
ASORT() :インデックスアソシエーションを維持し、昇順で配列を並べ替えます。
<code class="php">asort($array);</code>
Arsort() :インデックスアソシエーションを維持し、配列を下降順序で並べ替えます。
<code class="php">arsort($array);</code>
KSORT() :昇順でキーごとに配列を並べ替えます。
<code class="php">ksort($array);</code>
krsort() :キーごとに配列を下降順に並べ替えます。
<code class="php">krsort($array);</code>
natsort() :「自然な順序」アルゴリズムを使用して配列を並べ替えます。これは、数字を含む文字列をソートするのに役立ちます。
<code class="php">natsort($array);</code>
natcaseSort() :ケースに依存しない「自然順序」アルゴリズムを使用して配列を並べ替えます。
<code class="php">natcasesort($array);</code>
USORT() :ユーザー定義の比較関数によって配列を並べ替えます。
<code class="php">usort($array, 'comparison_function');</code>
uasort() :ユーザー定義の比較関数で配列を並べ替え、インデックスアソシエーションを維持します。
<code class="php">uasort($array, 'comparison_function');</code>
uksort() :ユーザー定義の比較関数を使用して、キーで配列を並べ替えます。
<code class="php">uksort($array, 'comparison_function');</code>
PHPでの多次元配列のソートは、 usort()
、 uasort()
、またはuksort()
を使用してカスタム比較関数を使用して実行できます。サブアレイ内の特定のキーに基づいて、多次元配列を並べ替える例を次に示します。
名前や年齢のある人が多数あり、昇順で年齢別に並べ替えたいとしましょう。
<code class="php">$people = array( array("name" => "John", "age" => 25), array("name" => "Jane", "age" => 30), array("name" => "Jim", "age" => 20) ); function compareAge($a, $b) { return $a['age'] $b['age']; } usort($people, 'compareAge'); print_r($people);</code>
これは出力されます:
<code>Array ( [0] => Array ( [name] => Jim [age] => 20 ) [1] => Array ( [name] => John [age] => 25 ) [2] => Array ( [name] => Jane [age] => 30 ) )</code>
はい、 asort()
およびarsort()
関数を使用してインデックスアソシエーションを維持しながら、PHPで配列を並べ替えることができます。
昇順でasort()
を使用してください:
<code class="php">$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); asort($fruits); print_r($fruits);</code>
これは出力されます:
<code>Array ( [c] => apple [b] => banana [d] => lemon [a] => orange )</code>
降順でarsort()
を使用してください:
<code class="php">$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); arsort($fruits); print_r($fruits);</code>
これは出力されます:
<code>Array ( [a] => orange [d] => lemon [b] => banana [c] => apple )</code>
これらの関数は両方とも値で配列をソートしますが、キーはそれぞれの値に関連付けられたままです。
以上がArrayをPHPでどのように並べ替えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。