PHP配列のソート、一次元アレイ、二次元アレイソーティング

一次元配列のソート

1.ソート、rsortソート(降順にR(示さ逆フリップ、すなわち))、ソートキーによって。

<?PHP
 $ ARR = 配列(10,2,4,1,5,8,7,9 );
 // $ ARR =配列( '0'に相当 => 10、 '1' => 2、 ' 2 '=> 4、' 3 '=> 1、' 4 '=> 5' 5 '=> 8、' 6 '=> 7、' 7「=> 9); 
//デフォルトソートキー値昇順、キー名が再指定され、例えば、10元のキーの名前は現在、0である7。
ソート$のARR 
 
のvar_dump$ ARR ); 
 
/ * 配列(サイズ= 8)
  。0 => INT 1 
  。1 => INT 2 
  2 => INT。4 
  。3 => INT。5 
  。4 => INT。7 
  。5 => INT。8 
  。6 => INT。9 
  。7 => 10 INT 
 * / 
?>
<?PHP
 の$編曲 = 配列(10,2,4,1,5,8,7,9 ); 
 
// 降順でソートデフォルトのキー値、新規定、同書のから鍵た
rsort$のARR ); 
 
のvar_dump$ ARR ); 
 
/ * 配列(サイズ= 8)
  0 => 10 int型
  。。1 => INT 9 
  。2 => INT 8 
  。3 => INT 7 
  。4 => INT 5 
  。5 => INT 4。
  6 => INT 2。
  7 =。 > int型1 
 * / 
?>

2. ksortは、キー名でソート、ソートkrsort。

<?PHP
 $ ARR = アレイ(10,2,4,1,5,8,7,9 ); 
 
// 昇順でキーのキー
ksort$のARR ); 
 
のvar_dump$のARR ); 
 
/ * 配列(サイズ= 8)
  0 => 10 INT 
  1 => 2の整数
  2 => INT。4 
  。3 => INT。1 
  。4 => INT。5 
  。5 => INT。8 
  。6 => INT。7 
  。7 => INT。9 * / 
?>
<?PHP
 の$編曲 = 配列(10,2,4,1,5,8,7,9 ); 
 
// ボタンキー名順の降順で
krsort$ ARRを); 
 
のvar_dump$のARR ); 
 
/ * 配列(サイズ= 。8)
  。7 => INT。9 
  。6 => INT。7 
  。5 => INT。8 
  。4 => INT。5 
  。3 => INT。1 
  2 => INT。4 
  。1 => 2の整数
  0 => 10 INT * / 
?>

3. ASORTは、キーによるソート、ソートarsort。

<?PHPの
 $の編曲 = 配列(10,2,4,1,5,8,7,9 ); 
 
// ボタンの昇順のキー、およびソート異なるキーは再定義しないということです
ASORT$のARR ) ; 
 
のvar_dump$ ARR ); 
 
/ * 配列(サイズ= 8)
  。3 => INT 1 
  。1 => INT 2 
  。2 => INT 4 
  。4 => INT 5 
  。6 => INT 7 
  。5 => INT 8。
  7 => INT 9。
  = 0> 10のint * / 
?>
<?PHP
 の$編曲 = 配列(10,2,4,1,5,8,7,9 ); 
 
// 降順でボタンキー、および異なるrsortは、キーが再定義しないということです
arsort$のARRを) ; 
 
のvar_dump$のARR ); 
 
/ * (サイズ= 8)アレイ
  0 => INT 10 
  。7 => INT 9 
  。5 => INT 8 
  。6 => INT 7 
  。4 => INT 5 
  。2 => INT 4 
  。1 => INT 2 
  = 3> 1つのint型* / 
?>

二次元アレイはキーに従ってソートされ

// 二维数组排序
関数 sortArr($配列$ sort_key$ SORT_ORDER = SORT_ASC、$ sort_typeに指定 = SORT_NUMERIC){
     $ key_arrays = 配列();
    もしIS_ARRAY$配列)){
         foreachの$配列 として $配列){
             場合IS_ARRAY$配列)){
                 $ key_arrays [] = $配列 [ $ sort_key ]。
            } {
                 戻り falseに; 
            } 
        } 
    } そう{
         戻り falseに; 
    } 
    array_multisort$ key_arraysをSORT_ORDER $$ sort_typeに指定し$配列は;)
     を返す $配列を; 
} 

// 例えば、データ構造から読み出さ$データは、二次元配列を表します各行の複数行テーブル構造、「日付」フィールドには内部を表し、ソートすることによってこのフィールド
// SORT_DESCは降順で発現するための文字列として比較SORT_STRING「日付」フィールドを提供
$あるnewData = $この - > sortArr ($データ、 'DATE'、SORT_DESC、SORT_STRING)。

複数のキーでソートされた二次元配列

// 二维数组多键值排序
関数 my_sort($配列$ sort_key$ sort_key1$ SORT_ORDER = SORT_ASC、$ sort_order1 = SORT_DESC){
     $ key_arrays = $ key_arrays1 = 配列();
    もしIS_ARRAY$配列)){
         foreachの$配列 として $配列){
             場合IS_ARRAY$配列)){
                 $ key_arrays [] = $配列 [$ sort_key ];
                 $ key_arrays1 [] = $配列 [ $ sort_key1 ]; 
            } そう{
                 リターン はfalse ; 
            } 
        } 
    } そう{
         リターン はfalse ; 
    } 
    array_multisort$ key_arraysSORT_ORDERを$$ key_arrays1$ sort_order1$配列);
     リターン アレイ$ ; 
} 

// $データは、例えば、複数行のテーブル構造のデータ構造から読み出され、二次元配列を表します 
//「DATE」は、このフィールドをソートの内側の各行のフィールドを表し、そして「時間」フィールドの順序によって、
// SORT_DESC、SORT_ASC対応する「日付」、ソート「時間」二つのフィールド
//エフェクトデータDESC、時間ASCにより、類似したデータベースの順。
あるnewData $ = $この - > sortArr($データ、 'DATE'、 '時間'、SORT_DESC、SORT_ASC)。

マイクロチャネル公共番号から:プログラミング協会

高度なプログラマ毎日本は、注意してください!

おすすめ

転載: www.cnblogs.com/ai10999/p/11449245.html