ホームページ  >  記事  >  バックエンド開発  >  PHPの2次元配列のソートarray_multisort

PHPの2次元配列のソートarray_multisort

不言
不言オリジナル
2018-05-15 10:36:142954ブラウズ

この記事では主に PHP の 2 次元配列の array_multisort を紹介します。これには特定の参考値があります。必要な方は参考にしてください。2 次元配列または多次元配列のソートはよくある問題です。 PHP には、以下で簡単に紹介する特別な多次元配列ソート関数があります:

array1

必須。入力配列を指定します。 パラメータ内の配列はテーブルの列として扱われ、行ごとに並べ替えられます。これは SQL の ORDER BY 句の機能と似ています。最初の配列は、ソートされるメインの配列です。配列内の行 (値) が同じである場合、次の入力配列内の対応する値のサイズに従って並べ替えられます。 SORT_ASC - デフォルト、昇順で並べ替えます。 (A-Z)SORT_DESC - 降順に並べ替えます。 (Z-A)その後、並べ替えのタイプを指定できます:
並べ替え順序 はオプションです。並べ替えの順序を指定します。可能な値は SORT_ASC と SORT_DESC です。
並べ替えタイプ オプション。並べ替えの種類を指定します。可能な値は、SORT_REGULAR、SORT_NUMERIC、および SORT_STRING です。
array2 オプション。入力配列を指定します。
array3 オプション。入力配列を指定します。
最初のパラメータは配列であり、後続の各パラメータは配列または次の並べ替え順序フラグのいずれかになります (並べ替えフラグはデフォルトの並べ替え順序を変更するために使用されます):
SORT_REGULAR - デフォルト。各項目を規則正しい順序で並べます。

SORT_NUMERIC - 各項目を数値順に並べ替えます。

SORT_STRING - 各項目をアルファベット順に並べます

array_multisort(array1,sorting order, sorting type,array2,array3..) 是对多个数组或多维数组进行排序的函数。

結果は次のようになります:
<?php 
   
    function my_sort($arrays,$sort_key,$sort_order=SORT_ASC,$sort_type=SORT_NUMERIC ){  
        if(is_array($arrays)){  
            foreach ($arrays as $array){  
                if(is_array($array)){  
                    $key_arrays[] = $array[$sort_key];  
                }else{  
                    return false;  
                }  
            }  
        }else{  
            return false;  
        } 
        array_multisort($key_arrays,$sort_order,$sort_type,$arrays);  
        return $arrays;  
    } 
   
    $person =  array( 
                    array(&#39;id&#39;=>1,&#39;name&#39;=>&#39;fj&#39;,&#39;weight&#39;=>100,&#39;height&#39;=>180), 
                    array(&#39;id&#39;=>2,&#39;name&#39;=>&#39;tom&#39;,&#39;weight&#39;=>53,&#39;height&#39;=>150), 
                    array(&#39;id&#39;=>3,&#39;name&#39;=>&#39;jerry&#39;,&#39;weight&#39;=>120,&#39;height&#39;=>156), 
                    array(&#39;id&#39;=>4,&#39;name&#39;=>&#39;bill&#39;,&#39;weight&#39;=>110,&#39;height&#39;=>190), 
                    array(&#39;id&#39;=>5,&#39;name&#39;=>&#39;linken&#39;,&#39;weight&#39;=>80,&#39;height&#39;=>200), 
                    array(&#39;id&#39;=>6,&#39;name&#39;=>&#39;madana&#39;,&#39;weight&#39;=>95,&#39;height&#39;=>110), 
                    array(&#39;id&#39;=>7,&#39;name&#39;=>&#39;jordan&#39;,&#39;weight&#39;=>70,&#39;height&#39;=>170) 
                ); 
       
    var_dump($person); 
       
    $person = my_sort($person,&#39;name&#39;,SORT_ASC,SORT_STRING); 
   
    var_dump($person); 
       
    $person = my_sort($person,&#39;weight&#39;); 
   
    var_dump($person); 
?>

ここで重要な点は、まずソートするキーを 1 次元配列に格納し、その後 array_multisort( ) 関数、配列はキーに従ってソートされます。もちろん、ここでのソートに array_multisort() 関数を使用する必要はありません。ただし、この効果は、PHP 開発者が提供したものだけです。これにより、不必要なトラブルが回避されます。

転載元:

https://www.cnblogs.com/tdalcn/p/6420055.html

関連推奨事項:

PHP は 2 次元配列を文字列に切り分け、重複する値を削除します

php two次元配列内の 1 次元配列内のフィールドを並べ替える方法

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

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