PHP配列ソートの各種方法まとめ_PHPチュートリアル

WBOY
リリース: 2016-07-13 16:57:09
オリジナル
1223 人が閲覧しました

PHP には多くの配列ソート関数 (rsort、sort、asort、rsort、krsort、ksort、array_multisort) があります。私たちがよく使う配列ソート関数と、ユーザーが作成した配列ソートの例をまとめます。それを参照することができます。

配列のソートに最もよく使用される関数は sort($arr) です。その機能はキー値によって配列を昇順にソートすることであり、ソートされた配列のキー名は元のキー名ではなくなりますが、次に従ってリセットされます。新しい配列キーの名前。
また、場合によっては、より複雑な並べ替えが必要になることもあります。たとえば、キー名で並べ替える場合、ここでは ksort($arr); 関数が使用され、キー名に従って配列を並べ替え、元のキーと値の関係を維持します。対応する asort($arr); 関数はキー値で並べ替え、元のキーと値の関係を維持します。

rsort(); krsort(); 関数は、ソートが降順である点を除き、同じです。
配列操作は PHP の非常に重要な基礎ですので、上手に使いこなしていただければ幸いです。


キー値で並べ替えます
つまり、識別子の ASCⅡコード値の大きさに従って順序が並べられます。

ksort(): 配列識別子の順序で並べ替えます
krsort(): 配列識別子に従って逆順にソートします
例 1:

コードは次のとおりです コードをコピー

$言語=配列(
'c'=>'php',
'd'=>'asp',
'a'=>'jsp',
'b'=>'java'
);
krsort($言語);
foreach($langages as $key=>$val){
echo "$key = $val".'
';
};
?>

要素の値で並べ替えます

asort(): 配列を小さい順に並べ替えます
rsort(): 配列を大きいものから小さいものへ逆順に並べ替えます。

例 1 の 8 ~ 11 行目を次のように変更します。

コードは次のとおりですコードをコピー
asort($messages);

print_r($言語);
echo "
";
rsort($言語);
print_r($言語);

元のキー名のソートを削除

sort(): 配列を小さい順に並べ替えます

rsort(): 配列を大きいものから小さいものへ逆順に並べ替えます。

例 2 の 8 ~ 11 行目を次のように変更します。

コードは次のとおりです並べ替え($言語);array_multisort -- 複数の配列または多次元配列をソートします
コードをコピー
foreach($langages as $key=>$val){

echo "言語[$key] = $val"。'
';
};

説明

bool array_multisort (配列 ar1 [, 混合 arg [, 混合 ... [, 配列 ...]]] )

例 1. 複数の配列を並べ替える

コードは次のとおりです $ar1 = array("10", 100, 100, "a");

$ar2 = 配列(1, 3, "2", 1);
array_multisort($ar1, $ar2);

var_dump($ar1);

var_dump($ar2);

?>

この例で並べ替えると、最初の配列には「10」、「a」、100、100 が含まれます。 2 番目の配列には 1,1,"2",3 が含まれます。 2 番目の配列内の項目の順序は、最初の配列内の対応する項目 (100 と 100) の順序とまったく同じです。

コードをコピー
コードは次のとおりです コードをコピー

配列(4) {
[0]=> 文字列(2) "10"
[1]=> 文字列(1) "a"
[2]=> int(100)
[3]=> int(100)
}
配列(4) {
[0]=> int(1)
[1]=> int(1)
[2]=> 文字列(1) "2"
[3]=> int(3)
}

例 2. 多次元配列のソート

コードは次のとおりです コードをコピー

$ar = 配列 (配列 ("10", 100, 100, "a"), 配列 (1, 3, "2", 1));
array_multisort ($ar[0], SORT_ASC, SORT_STRING,
) $ar[1], SORT_NUMERIC, SORT_DESC);
?>

この例で並べ替えると、最初の配列には 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
コードは次のとおりです コードをコピー

-----ソート前の出力-----
配列(8) { [0]=> 配列(1) { ["スコア"]=> int(60) }
[1]=> 配列(1) { ["スコア"]=> int(70) }
[2]=> 配列(1) { ["スコア"]=> [3]=> 配列(1) { ["スコア"]=> [4]=> 配列(1) { ["スコア"]=> int(20) }
[5]=> 配列(1) { ["スコア"]=> int(10) }
[6]=> 配列(1) { ["スコア"]=> [7]=> 配列(1) { ["スコア"]=> int(30) } ------ソート後の出力-----
配列(8) { [0]=> 配列(1) { ["スコア"]=> int(90) }
[1]=> 配列(1) { ["スコア"]=> [2]=> 配列(1) { ["スコア"]=> [3]=> 配列(1) { ["スコア"]=> int(60) }
[4]=> 配列(1) { ["スコア"]=> int(50) }
[5]=> 配列(1) { ["スコア"]=> [6]=> 配列(1) { ["スコア"]=> int(20) }
[7]=> 配列(1) { ["スコア"]=> int(10) }






www.bkjia.comtru​​e

http://www.bkjia.com/PHPjc/631541.html

php には多くの配列ソート関数 (rsort、sort、asort、rsort、krsort、ksort、array_multisort) があります。私たちが一般的に使用する配列ソート関数のいくつかをまとめてみましょう...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!