ホームページ > php教程 > php手册 > PHPでarray_multisort()を使用する方法の紹介

PHPでarray_multisort()を使用する方法の紹介

WBOY
リリース: 2016-06-13 12:00:26
オリジナル
1177 人が閲覧しました

array_multisort() 関数を使用して、複数の配列または多次元配列を並べ替えます。配列の並べ替えと多次元配列の並べ替えを学習している友人は参考にしてください。

関数 bool array_multisort ( array &$arr [,mixed $arg = SORT_ASC [,mixed $arg = SORT_REGULAR [,mixed $...]]] )

パラメータの説明: この関数は複数の配列または多次元配列をソートします

最初のパラメータは配列であり、後続の各パラメータは配列または次の並べ替え順序フラグです
SORT_ASC - デフォルト、昇順で並べ替えます
SORT_DESC - 降順で並べ替えます
その後に、ソートのタイプ
SORT_REGULAR - デフォルト。各項目を規則正しい順序で並べます。
SORT_NUMERIC - 各項目を数値順に並べ替えます。
SORT_STRING - 各項目をアルファベット順に並べ替えます。
例:

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


$arr1 = array('10' , 11, 100, 100, 'a');
$arr2 = array(1, 2, 3, '2', 5);
array_multisort($arr1, $arr2); ;

結果は次のようになります:

$arr1
Array ( [0] => 10 [1] => a [2] => 11 [3] => 100 [4] => ; 100 )
# '10' は、11、100、100 と比較すると、他の 3 つの数値より小さい整数 10 に変換されます
# '10' は、'a と比較すると文字列として使用されます'、最初の文字 '1' の ASCII コード値は 49 で、'a' (ASCII 値は 97) より小さいため、'10' が最小の要素です
# 'a' は比較時に整数 0 に変換されます他の 3 つの数値は、他の 3 つの数値より小さい Number
$arr2
Array ( [0] => 1 [1] => 5 [2] => 2 [3] => 2 [4] => 3 )
# $arr2 要素 1 は $arr1 要素 '10' 位置に対応するため、[0] 位置にランクされます
# $arr1[2] => 100, $ arr1[3] => 100 はそれぞれ $arr2 要素 3、'2' に対応します。 3 は '2' より大きいため、2 => 100 に対応する $arr1[2] にはソートされた添字 3 があり、3 => 100 に対応する $arr1[3] にはソートされたインデックス 4 があります
--------
1. ソートに必要な配列要素の数は変わりません
2. ソートされた配列要素の位置は、たとえば '10' => 1 に対応します。 , 11 => 2
3. 次の配列は前の配列の順序に基づいて並べ替えられます
4. 前の配列が等しい要素に遭遇した場合、次の配列が比較されます


以下は使用例です。マニュアルには例を記載しません。私自身の作品からいくつかだけ挙げます。
おそらく私が仕事で最もよく目にするのは 3 次元配列でしょう。3 次元配列を試してみたかったのですが、よく考えた結果、やめることにしました。

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

header('Content-Type: text/html; charset=utf- 8') ;
echo '

'; 
//元の配列形式
$array = array(
'key1' => ; '65 ',
'item2' => '35',
'item3' => '84',
),
'key2' => array(
'item1' => '24',
),
'key3' => array(
'item1' => '38',
'item3' => '45',
) ,
);
// 並べ替えるキー
// 配列の item1 に従って並べ替えます
// item2 に変更することもできます
$sort = 'item1' ; >foreach($array as $k => $v)
{
$newArr[$k] = $v[$sort];
}
//この関数が正しく実行された場合、元の配列キー値の順序を直接変更します
//実行が失敗した場合は、 bool(false) が返されます
array_multisort($newArr,SORT_DESC, $array); var_dump($array );
//----------ソートされた配列の出力効果が始まります----------- --- -----
array(3) {
["key1"]=>
array(3) {
["item1"]=> (2) "65"
["item2"]=>
文字列(2) "35"
["item3"]=>
文字列(2) "84"
}
["key3"]=>
array(2) {
["item1"]=>
string(2) "38"
["item3"] =>
文字列(2) "45"
}
["key2"]=>
配列(1) {
["item1"]=> string(2 ) "24"
}
}
///----------ソートされた配列の出力効果が終了します-- --- ----------------



ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート