array_Multisort()配列内のキー値に基づいて配列をソートする

2036 ワード

##array_multisort(array1,sorting order,sorting type,array2…)
Array 1:必ず選択し、配列を規定し、ソートする配列を指定します.sorting order:オプションで、配列順序を指定します.-SORT_ASC-デフォルト.昇順で並べ替えます(A-Z).-SORT_DESC-降順で配列(Z-A);sorting type:オプションで、ソートタイプを規定します.array 2:オプションで、配列を指定します.1つのkey値はarray 1配列の所定配列である
1つ目の使用方法:
$data = [
    [
        "country_id" => "SA",
        "sort" => 9
    ],
    [
        "country_id" => "AE",
        "sort" => 30
    ],
    [
        "country_id" => "US",
        "sort" => 1
    ]
];

foreach ($data as $item) {
    $sort[] = $item['sort'];
}

array_multisort($sort,SORT_ASC, $data);
print_r($data);


result:
Array
(
    [0] => Array
        (
            [country_id] => US
            [sort] => 1
        )
    [1] => Array
        (
            [country_id] => SA
            [sort] => 9
        )
    [2] => Array
        (
            [country_id] => AE
            [sort] => 30
        )
)

パラメータの配列はテーブルの列として扱われ、行でソートされます.SQLのORDER BY句のような機能です.最初の配列は並べ替えられる主な配列であり,対照配列と理解できる.次の配列の行(値)を同じにすると、その配列の対応する値を照合するように並べ替えられます.
2つ目の使用方法:
$a=array("Dog","Cat","Horse","Bear","Zebra");
array_multisort($a);
print_r($a);

result :
Array ( 
	[0] => Bear
	[1] => Cat
	[2] => Dog
	[3] => Horse
	[4] => Zebra 
)

3つ目の使用方法:
$a1=array(1,30,15,7,25);
$a2=array(4,30,20,41,66);
$num=array_merge($a1,$a2);
array_multisort($num,SORT_DESC,SORT_NUMERIC);
print_r($num);

result:
Array ( 
	[0] => 66
	[1] => 41
	[2] => 30
	[3] => 30
	[4] => 25
	[5] => 20
	[6] => 15
	[7] => 7
	[8] => 4
	[9] => 1
)

ここで3番目のパラメータとは、数値タイプに従ってソートされ、それに応じてSORT_STRING->文字列タイプ、SORT_LOCALE_STRING->各項目を文字列として扱い、現在の領域設定(setlocale()で変更可能)、SORT_NATURAL->各項目を文字列として処理し、natsort()のような自然なソートを使用し、SORT_FLAG_CASE->SORT_STRINGまたはSORT_NATURALを組み合わせて文字列を並べ替え、大文字と小文字を区別しない