ホームページ  >  記事  >  バックエンド開発  >  PHP_PHPチュートリアルの配列ソート関数の詳細説明

PHP_PHPチュートリアルの配列ソート関数の詳細説明

WBOY
WBOYオリジナル
2016-07-20 11:11:07973ブラウズ

PHPには多数の配列ソート関数が用意されています。PHP配列ソートの使い方を一つずつ紹介していきます。

配列はソート関数のパラメータとして使用され、ソート後は配列自体が変化し、関数の戻り値は bool 型になります。

2 値によるソートの処理では、配列の値ではなく配列のキーに従ってソートします

4 関数名に現れる単一の r は reverse を意味し、加算しない場合の順序が逆であることを意味しますr

5 関数名に現れる単一の u これはユーザー定義を意味し、関数のロジックがパラメーター 1 ---------------------ソート関数昇順---------------------- --------

コードは次のとおりですコードをコピーbool sort ( array &$array [, int $sort_flags= SORT_REGULAR ] )$fruits = array(" レモン", "オレンジ", "バナナ", "リンゴ");
sort($fruits);
var_dump($fruits);
?>
結果:
array
0 => ' (長さ = 5)
1 => 文字列 'バナナ' (長さ = 6)
2 => 文字列 'オレンジ' (長さ = 6)


- ------------------r降順に並べ替えます---------------------
コードは次のとおりです

コードをコピーします$fruits = array("lemon", "orange", "banana", "apple");rsort($fruits);var_dump($果物);?> ;
結果:
配列
0 => 文字列 'オレンジ' (長さ=6)
1 => 文字列 'レモン' (長さ=5)
2 => length=6)
3 => string 'apple' (length=5)



--------------2次元配列値の昇順に並べ替えます(key=>value の関連付けを維持)-----------
コードは次のとおりです

コードをコピー$fruits = array( "d" => "レモン"、"b" => "バナナ"、"c" => "リンゴ");var_dump ($fruits);?>結果:
配列 'c' => 文字列 'apple' (length=5)
'b' => 文字列 'banana' (length=6)
'd' => 文字列 'レモン' (長さ=5)
' a' => 文字列 'オレンジ' (長さ=6)


--------------arsort は 2 次元配列の値を降順にソートします (key=>value の関連付けを維持します)----------- ---

-- ------------- ------krsort 配列キーの降順にソート---------------------- --------
コードは以下の通りです コードをコピー

$fruits = array("d" => "レモン", "a" => "オレンジ" ", "b" => "バナナ", "c" => "リンゴ");
arsort($fruits);
var_dump($fruits);
?>
結果
array
'a' = > 文字列 'オレンジ' (長さ = 6)
'd' => 文字列 'レモン' (長さ = 5)
'b' => string 'apple' (length=5 )

---------------------ksortは配列のキーによって昇順にソートされます---------- ------- "レモン", "a"=>"オレンジ", "b"=>"バナナ", "c"= >"apple");

ksort($fruits) ;
var_dump($fruits);
?>
結果
配列
'a' => 文字列 'オレンジ' (長さ=6)
'b' = > 文字列 'バナナ' (長さ=6)
' c' => 文字列 'リンゴ' (長さ=5)
'd' => 文字列 'レモン' (長さ=5)

コードは次のとおりですコードをコピーします$fruits = array("d"=>"lemon", "a"= >"オレンジ", "b"=>"バナナ", "c"=>"リンゴ");-----usort 関数はユーザー定義関数に従ってソートします----- --------
krsort($fruits);

var_dump($fruits);
?>

配列
' d' => 文字列 'レモン' (長さ=5)

' c' => 文字列 'リンゴ' (長さ=5)

'b' => 文字列 'バナナ' (長さ=6) => 文字列 'オレンジ' (長さ=6)




コードは次のとおりです

コードをコピーfunction cmp($a, $b){
if ($a == $b) {

return 0;
}
return ($a < $b ) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);

usort( $a, "cmp");

var_dump($a);

?>

結果:

array

0 => int 1
1 => int 2
2 => int 3 => ; int 5
4 => int 6




---------------------------------uksort は配列のキーでソートします----- ------------

コードは以下の通りです

コードをコピー{$a = preg_replace('@^(a|an|the) @', '', $a);
function cmp($a, $b)
$b = preg_replace('@^(a|an|the) @', '', $b);

return strcasecmp($a, $b);
}

$a = array("ジョン" => 1 , "地球" => 2, "リンゴ" => 3, "バナナ" = > 4);

uksort($a, "cmp");
var_dump($a);

?>

結果:

配列

'リンゴ' => int 3

'バナナ' = > int 4
'地球' => int 2
'ジョン' => int 1


------uasort はカスタム関数を使用して、インデックス関係を変更せずに値で配列を並べ替えます-----------

コード以下の通り コードをコピー

// 比較関数
function cmp($a, $b) {
if ($a == $b) {
return 0;
}
return ( $a < $b) ? -1 : 1;
}

// ソートする配列
$array = array('a' => 4, 'b' => 8, 'c' = > -1、'd' => 2、'g' => 3);
var_dump; ( $array);

// 結果の array を並べ替えて出力します
uasort($array, 'cmp');
var_dump($array);
?>
Result:
array
'a' => int; 4
'b' => int 8
'c' => int -1
'e' => int 2
'f' => g ' => int 3
'h' => int -4
'd' => int -4
'c' => ' e' => int 2
' g' => int 3
' f' => int 5
' b' => int; - ------------------array_multisort 複数の配列または多次元配列をソートします----------



コードは次のとおりです

コードをコピーします

< ;?php

$ar = array(array("10", 11, 100, 100, "a"),array( 1, 2, "2", 3, 1)$ar[1], SORT_NUMERIC, SORT_DESC);var_dump($ar);?>
); array_multisort($ ar[0], SORT_ASC, SORT_STRING,
結果:

array
0 =>
array
0 => 文字列 '10' (長さ = 2)
1 => int 100

3 => int 11

4 => 1 => 配列
0 => int 1

1 => int 3
2 => int 2
4 => 1
//説明:
1 上記の例では、$ar 配列は、まず $ar[0] の文字列値に従って昇順に並べられます。文字列値が等しい場合は、次に並べられます。 $ar[1] 配列の数値に従って降順で並べられます。
2 array_multisort 関数の任意の位置のパラメータが配列の場合、それは並べ替えに使用される値を表します。
複数の配列パラメータがある場合、
などの定数の場合は、前の配列の値が最初に並べ替えられます。 SORT_ASC、SORT_DESC、SORT_REGULAR、SORT_NUMERIC、SORT_STRING.
はソート方法を示します(配列値が最初に取得されます)。





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

www.bkjia.com

本当

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

技術記事

PHPには多数の配列ソート関数が用意されています。PHP配列ソートの使い方を一つずつ紹介していきます。 配列はソート関数のパラメータとして使用され、ソート後は配列自体が...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。