PHP 配列のソートの解釈

WBOY
リリース: 2016-07-28 08:27:29
オリジナル
1247 人が閲覧しました

PHP には一連の強力な関数ライブラリがあります。以下のスクリーンショットは PHP7.0 マニュアルからのものです。
 解读PHP数组排序


    sort() — この関数は、すべての並べ替え関数のルート関数です。配列に加えて、2 番目のオプションのパラメーター sort_flags は、オプションの型による並べ替えを変更します。フラグの動作。
  • bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
    <code><span><span><?php</span><span>$auto</span> = <span>array</span>(<span>"bens2"</span>,<span>"honda3"</span>,<span>"BMW4"</span>,<span>"aens1"</span>,<span>"BMW5"</span>);
    sort(<span>$auto</span>,SORT_STRING|SORT_FLAG_CASE);<span>//不区分大小写排序字符串</span><span>foreach</span>(<span>$auto</span><span>as</span><span>$key</span>=><span>$val</span>)
    {
        <span>echo</span><span>"auto["</span>.<span>$key</span>.<span>"]="</span>.<span>$val</span>.<span>"\n"</span>;
        <span>//输出auto[0]=BMW4 auto[1]=BMW5 auto[2]=aens1 auto[3]=bens2 auto[4]=honda3</span>
    }</span></span></code>
    ログイン後にコピー
rsort — 配列を逆にソートします。パラメータリストはsortと同じです。戻り値は
  • <code><span><span><?php</span><span>$auto</span> = <span>array</span>(<span>"bens2"</span>,<span>"honda3"</span>,<span>"BMW4"</span>,<span>"aens1"</span>,<span>"BMW5"</span>);
    rsort(<span>$auto</span>,SORT_STRING|SORT_FLAG_CASE);<span>//不区分大小写排序字符串</span><span>foreach</span>(<span>$auto</span><span>as</span><span>$key</span>=><span>$val</span>)
    {
        <span>echo</span><span>"auto["</span>.<span>$key</span>.<span>"]="</span>.<span>$val</span>.<span>"\n"</span>;
        <span>//输出auto[0]=honda3 auto[1]=BMW5 auto[2]=BMW4 auto[3]=bens2 auto[4]=aens1</span>
    }</span></span></code>
    ログイン後にコピー

asort() — 配列をソートし、インデックス関係を維持します。パラメータと戻り値は上記と同じですが、マニュアルの説明は「この関数は配列をソートし、配列のインデックスはユニットに関連付けられたままになります。主にユニットの順序が異なる連想配列をソートするために使用されます。」個人的には、これと sort() は連想配列のソートに重点を置いていると思います。簡単に言えば、ソート ルールはキーではなく値に基づいています。これは ksort() と簡単に区別できます。
  • <code><span><span><?php</span><span>$auto</span> = <span>array</span>(<span>"a"</span>=><span>"bens2"</span>,<span>"b"</span>=><span>"honda3"</span>,<span>"c"</span>=><span>"BMW4"</span>,<span>"d"</span>=><span>"aens1"</span>,<span>"e"</span>=><span>"BMW5"</span>);
    asort(<span>$auto</span>,SORT_STRING|SORT_FLAG_CASE);<span>//不区分大小写排序字符串</span><span>foreach</span>(<span>$auto</span><span>as</span><span>$key</span>=><span>$val</span>)
    {
        <span>echo</span><span>"auto["</span>.<span>$key</span>.<span>"]="</span>.<span>$val</span>.<span>"\n"</span>;
        <span>//输出auto[d]=aens1 auto[a]=bens2 auto[c]=BMW4 auto[e]=BMW5 auto[b]=honda3</span>
    }</span></span></code>
    ログイン後にコピー
arsort() — 配列を逆ソートし、インデックス関係を維持します。これは、asort() の逆ソートです。
  • <code><span><span><?php</span><span>$auto</span> = <span>array</span>(<span>"a"</span>=><span>"bens2"</span>,<span>"b"</span>=><span>"honda3"</span>,<span>"c"</span>=><span>"BMW4"</span>,<span>"d"</span>=><span>"aens1"</span>,<span>"e"</span>=><span>"BMW5"</span>);
    arsort(<span>$auto</span>,SORT_STRING|SORT_FLAG_CASE);<span>//不区分大小写排序字符串</span><span>foreach</span>(<span>$auto</span><span>as</span><span>$key</span>=><span>$val</span>)
    {
        <span>echo</span><span>"auto["</span>.<span>$key</span>.<span>"]="</span>.<span>$val</span>.<span>"\n"</span>;
        <span>//输出auto[b]=honda3 auto[e]=BMW5 auto[c]=BMW4 auto[a]=bens2 auto[d]=aens1</span>
    }</span></span></code>
    ログイン後にコピー

ksort() - 配列をキー名で並べ替えます。マニュアルには、「配列をキー名で並べ替え、キー名とデータの関連付けを保持します。この関数は主に連想配列に使用されます。」と説明されています。および戻り値は sort () と同じです
  • <code><span><span><?php</span><span>$auto</span> = <span>array</span>(<span>"b"</span>=><span>"bens2"</span>,<span>"a"</span>=><span>"honda3"</span>,<span>"d"</span>=><span>"BMW4"</span>,<span>"c"</span>=><span>"aens1"</span>,<span>"e"</span>=><span>"BMW5"</span>);
    ksort(<span>$auto</span>,SORT_STRING|SORT_FLAG_CASE);<span>//不区分大小写排序字符串</span><span>foreach</span>(<span>$auto</span><span>as</span><span>$key</span>=><span>$val</span>)
    {
        <span>echo</span><span>"auto["</span>.<span>$key</span>.<span>"]="</span>.<span>$val</span>.<span>"\n"</span>;
        <span>//输出auto[a]=honda3 auto[b]=bens2 auto[c]=aens1 auto[d]=BMW4 auto[e]=BMW5</span>
    }</span></span></code>
    ログイン後にコピー
    ログイン後にコピー
krsort — 配列をキー名で逆順に並べ替えます パラメータと戻り値は上記と同じです
  • <code><span><span><?php</span><span>$auto</span> = <span>array</span>(<span>"b"</span>=><span>"bens2"</span>,<span>"a"</span>=><span>"honda3"</span>,<span>"d"</span>=><span>"BMW4"</span>,<span>"c"</span>=><span>"aens1"</span>,<span>"e"</span>=><span>"BMW5"</span>);
    ksort(<span>$auto</span>,SORT_STRING|SORT_FLAG_CASE);<span>//不区分大小写排序字符串</span><span>foreach</span>(<span>$auto</span><span>as</span><span>$key</span>=><span>$val</span>)
    {
        <span>echo</span><span>"auto["</span>.<span>$key</span>.<span>"]="</span>.<span>$val</span>.<span>"\n"</span>;
        <span>//输出auto[a]=honda3 auto[b]=bens2 auto[c]=aens1 auto[d]=BMW4 auto[e]=BMW5</span>
    }</span></span></code>
    ログイン後にコピー
    ログイン後にコピー

natsort — を使用します。マニュアルでは、配列をソートするための「自然ソート」アルゴリズムについて、「この関数は合計を実装します。通常、同じソート アルゴリズムを使用して、元のキーと値の関連付けを保持して英数字文字列をソートします。これは「自然ソート」と呼ばれ、「自然ソート」とは異なります。パラメータを 1 つだけ取るsort()のソートメソッド。つまり、渡されるパラメータです。
  • shuffle() — 配列をシャッフルし、キー名だけでなくキー名も削除します。配列変数が渡され、戻り値は true または false

<code><span><span><?php</span><span>$auto</span> = <span>array</span>(<span>"b"</span>=><span>"bens2"</span>,<span>"e"</span>=><span>"bens20"</span>,<span>"a"</span>=><span>"bens31"</span>,<span>"d"</span>=><span>"bens41"</span>,<span>"c"</span>=><span>"bens1"</span>,<span>"e"</span>=><span>"bens15"</span>);
sort(<span>$auto</span>,SORT_STRING|SORT_FLAG_CASE);<span>//不区分大小写排序字符串</span><span>echo</span><span>"sort排序:<br>"</span>;
<span>foreach</span>(<span>$auto</span><span>as</span><span>$key</span>=><span>$val</span>)
{
    <span>echo</span><span>"auto["</span>.<span>$key</span>.<span>"]="</span>.<span>$val</span>.<span>"<br>"</span>;

}
<span>$auto1</span> = <span>array</span>(<span>"b"</span>=><span>"bens2"</span>,<span>"e"</span>=><span>"bens20"</span>,<span>"a"</span>=><span>"bens31"</span>,<span>"d"</span>=><span>"bens41"</span>,<span>"c"</span>=><span>"bens1"</span>,<span>"e"</span>=><span>"bens15"</span>);
natsort(<span>$auto1</span>);<span>//参数只有一个</span><span>echo</span><span>"natsort排序:<br>"</span>;
<span>foreach</span>(<span>$auto1</span><span>as</span><span>$key</span>=><span>$val</span>)
{
    <span>echo</span><span>"auto["</span>.<span>$key</span>.<span>"]="</span>.<span>$val</span>.<span>"<br>"</span>;

}
<span>//输出</span><span>/* sort排序:
auto[0]=bens1
auto[1]=bens15
auto[2]=bens2
auto[3]=bens31
auto[4]=bens41
natsort排序:
auto[c]=bens1
auto[b]=bens2
auto[e]=bens15
auto[a]=bens31
auto[d]=bens41 */</span></span></span></code>
ログイン後にコピー
    ').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i
  • ').text(i)); }; $numbering.fadeIn(1700); }); });
上記では、PHP 配列のソートの解釈をその側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート