ホームページ  >  記事  >  バックエンド開発  >  PHP の 13 の配列ソート関数の紹介

PHP の 13 の配列ソート関数の紹介

不言
不言オリジナル
2018-07-23 11:59:041906ブラウズ

この記事で共有した内容は、PHP の配列ソート関数に関するもので、一定の参考価値がありますので、困っている友人は参考にしてください。

  • 関数のうち、u があれば比較関数をカスタマイズでき、k があればキーでソートできます。 ; r (reverse) がある場合は逆順; a(association) がある場合は、rsort()# を除き、キーと値の関連付けである必要があります。 ##usort() sort() shuffle()a のない他のものはキーと値の関連付け、array_multisort( ) キーと値の関連付けは維持されますが、数値型は維持されません。

  • 以下の並べ替え関数はすべて、新しい順序付けされた配列を返すのではなく、配列自体に直接作用します。

  • 次の関数では、並べ替え後の配列内の等しい要素の順序が未定義です。 (つまり、等しい要素間の順序は不安定です。つまり、同じ値を持つ要素の各ソートの結果は不確実です (連想配列))。 php7

    asort arsort uasort は安定したソート、php5 の安定したソートを実現しました: http://php.net/manual/zh/func...

  • sort() は予期しない結果を生成する可能性があるため、混合型の値を含む配列を並べ替える場合は注意してください。

1.array_multisort

  • は、複数の配列を一度に並べ替えたり、特定の次元に従って多次元配列を並べ替えたりするために使用できます。または複数の次元。

bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] )
ソート タイプ フラグ:

  • SORT_REGULAR (デフォルト) - 通常の方法で項目を比較します (タイプを変更せず、区別します) size 書き込み、大文字は小文字の前にソートされます)

  • SORT_NUMERIC - 数値サイズに従って比較

  • SORT_STRING - 文字列に従って比較 (サイズ依存書き込み)

  • SORT_LOCALE_STRING - 現在のローカリゼーション設定に基づいて文字列を比較します。ロケール情報を使用します。ロケール情報は setlocale() を介して変更できます。

  • SORT_NATURAL - natsort() と同様の文字列の「自然な並べ替え」

  • #SORT_FLAG_CASE - SORT_STRING または SORT_NATURAL を (ビット単位の OR) 組み合わせて使用​​できます大文字と小文字を区別しない方法で文字列を並べ替えます。

  • 1.1 複数の配列パラメーターがある場合、

    $array2$array1# の結果に基づきます。 ## MySQL のようなソート group by

  • 1.2 大文字と小文字を区別しないソート:
  • $array = array('Alpha', 'atomic', 'Beta', 'bank');
    $array_lowercase = array_map('strtolower', $array); // 先复制一个转为小写数组
    
    array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);   // 先对小写数组排序,再排序原数组
    
    print_r($array);
#1.3 データベースの結果を並べ替えます
  • ##
    function array_orderby()
    {
        $args = func_get_args();
        $data = array_shift($args);
        foreach ($args as $n => $field) {
            if (is_string($field)) {
                $tmp = array();
                foreach ($data as $key => $row)
                    $tmp[$key] = $row[$field];
                $args[$n] = $tmp;
                }
        }
        $args[] = &$data;
        call_user_func_array('array_multisort', $args);
        return array_pop($args);
    }

    2.sort

元のキー名を削除し、配列 (シーケンス) を並べ替えます

  • bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

sort($fruits, SORT_NATURAL | SORT_FLAG_CASE);
    ソート結果は
  • natcasesort()

    と同じです。 3.rsort

配列の逆ソート

  • bool rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

    4.asort

キーと値の関連付けを維持します。主に、セルの順序が重要な連想配列の並べ替えに使用されます。

  • bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

    5.arsort

順序を逆にしてインデックス関係を維持します (関連付け、逆)

  • bool arsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

    6.ksort

キー名で並べ替え
  • <pre class="brush:php;toolbar:false">bool ksort ( array &amp;$array [, int $sort_flags = SORT_REGULAR ] )</pre>7.krsort

キー名を押す
    逆順
  • <pre class="brush:php;toolbar:false">bool krsort ( array &amp;$array [, int $sort_flags = SORT_REGULAR ] )</pre>8.usort

ユーザー定義の比較関数を使用する配列内の

    を並べ替える場合、並べ替える配列を通常とは異なる基準で並べ替える必要がある場合は、この関数を使用する必要があります。
  • <pre class="brush:php;toolbar:false">bool usort ( array &amp;$array , callable $value_compare_func )</pre>

$value_compare_func(mixed $a,mixed $b )
  • $a# より小さい、等しい、または大きいです

    #$b に応じて、比較関数は 0 より小さい、0 と等しい、または 0 より大きい整数を返す必要があります。 #usort($a, array("TestObj", "cmp_obj"))オブジェクト属性の並べ替え

  • ##9 。 uasort

    ユーザー定義の比較関数を使用して配列内の値を並べ替え、インデックスの関連付けを維持します

bool uasort ( array &$array , callable $value_compare_func )

10.uksort
  • ユーザー定義の比較関数を使用して、配列内の
  • キー名
を並べ替えます

    bool uksort ( array &$array , callable $key_compare_func )
  • 11.natcasesort

    大文字と小文字 (文字の後の数字) を区別せず、キーと値の関連付けを維持する自然な並べ替え
  • #
    bool natcasesort ( array &$array )

    12.natsort

    • 「自然な並べ替え」アルゴリズムを使用して配列を並べ替え、キーと値の関連付けを維持します

    bool natsort ( array &$array )

    13.shuffle

    • この関数は、配列をスクランブル (セルの順序をランダムに配置) します。キー値が関連付けられていません

    bool shuffle ( array &$array )

    関連する推奨事項:

    PHP でよく使用される 10 個の文字列関数とその使用方法の紹介

    以上がPHP の 13 の配列ソート関数の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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