PHP には多くの配列ソート関数 (rsort、sort、asort、rsort、krsort、ksort、array_multisort) があります。私たちがよく使う配列ソート関数と、ユーザーが作成した配列ソートの例をまとめます。それを参照することができます。
配列のソートに最もよく使用される関数は sort($arr) です。その機能はキー値によって配列を昇順にソートすることであり、ソートされた配列のキー名は元のキー名ではなくなりますが、次に従ってリセットされます。新しい配列キーの名前。
また、場合によっては、より複雑な並べ替えが必要になることもあります。たとえば、キー名で並べ替える場合、ここでは ksort($arr); 関数が使用され、キー名に従って配列を並べ替え、元のキーと値の関係を維持します。対応する asort($arr); 関数はキー値で並べ替え、元のキーと値の関係を維持します。
rsort(); krsort(); 関数は、ソートが降順である点を除き、同じです。
配列操作は PHP の非常に重要な基礎ですので、上手に使いこなしていただければ幸いです。
キー値で並べ替えます
つまり、識別子の ASCⅡコード値の大きさに従って順序が並べられます。
ksort(): 配列識別子の順序で並べ替えます
krsort(): 配列識別子に従って逆順にソートします
例 1:
コードは次のとおりです | コードをコピー |
$言語=配列( |
要素の値で並べ替えます
asort(): 配列を小さい順に並べ替えます
rsort(): 配列を大きいものから小さいものへ逆順に並べ替えます。
例 1 の 8 ~ 11 行目を次のように変更します。
コードをコピー | |
asort($messages);
print_r($言語); |
元のキー名のソートを削除
rsort(): 配列を大きいものから小さいものへ逆順に並べ替えます。
コードをコピー | |
foreach($langages as $key=>$val){
echo "言語[$key] = $val"。' |
bool array_multisort (配列 ar1 [, 混合 arg [, 混合 ... [, 配列 ...]]] )
例 1. 複数の配列を並べ替える
コードをコピー | |||||||||||||||
コードは次のとおりです | コードをコピー |
配列(4) { |
例 2. 多次元配列のソート
コードは次のとおりです | コードをコピー |
$ar = 配列 (配列 ("10", 100, 100, "a"), 配列 (1, 3, "2", 1));
|
この例で並べ替えると、最初の配列には 10、100、100、"a" (文字列の昇順で並べ替え) が含まれ、2 番目の配列には 1、3、"2"、1 (数値として並べ替え) が含まれます。降順ソート)。
PHPには配列ソート関数がたくさんあり、とても強力です
例: asort、asort、krsort、ksort、sort…
しかし、それでも私たちのニーズを満たせない場合もあります
2次元配列がある場合は、2次元配列の値でソートする必要があります
usort カスタム配列ソートを使用する必要があります
例は次のとおりです:
コードは次のとおりです | コードをコピー |
$aa = 配列 (配列 ("スコア"=>60), 配列 (「スコア」=>70)、 配列 (「スコア」=>80)、 配列 (「スコア」=>90)、 配列 (「スコア」=>20)、 配列 (「スコア」=>10)、 配列 (「スコア」=>50)、 配列 ("スコア"=>30)); echo '-----ソート前の出力----- '; var_dump($aa); // ソート前の出力 usort($aa, "cmp"); // ソート処理(大きい順) echo ' -----ソート後の出力----- '; var_dump($aa); // ソートされた出力 /** *カスタマイズされた並べ替え条件 * @param 配列 $a * @param 配列 $b * @return bool */ 関数 cmp($a, $b) { if ($a["スコア"] == $b["スコア"]) { 0 を返す; } return ($a["スコア"] } ?> |
コードは次のとおりです | コードをコピー |
-----ソート前の出力----- |
http://www.bkjia.com/PHPjc/631541.html