PHP の 2 次元配列のソート問題
PHP で 2 次元配列をソートするには、PHP 組み込み関数 uasort()
[ユーザー定義の比較を使用する関数は配列内の値を並べ替え、インデックスの関連付けを維持します]
コールバック関数は次のとおりです。コールバック関数の戻り値が返される場合に注意してください。負の数または false の場合、コールバック関数の最初のパラメータが前にあり、2 番目のパラメータが後ろの順序であることを意味します
$person = array( array('num'=>'001','id'=>6,'name'=>'zhangsan','age'=>21), array('num'=>'001','id'=>7,'name'=>'ahangsan','age'=>23), array('num'=>'003','id'=>1,'name'=>'bhangsan','age'=>23), array('num'=>'001','id'=>3,'name'=>'dhangsan','age'=>23), );
//负数或者false表示第一个参数应该在前 function sort_by_name($x,$y){ return strcasecmp($x['name'],$y['name']); }次のように使用します:
uasort($person,'sort_by_name');
以下は、参照およびインタビューで使用する 2 次元配列のソート方法を示しています:
//$array 要排序的数组 //$row 排序依据列 //$type 排序类型[asc or desc] //return 排好序的数组 function array_sort($array,$row,$type){ $array_temp = array(); foreach($array as $v){ $array_temp[$v[$row]] = $v; } if($type == 'asc'){ ksort($array_temp); }elseif($type='desc'){ krsort($array_temp); }else{ } return $array_temp; }
============== ================================== =============== =====
ところで、PHP のソート関数をいくつか紹介します
[sort 配列の並べ替え ] は通常、1 次元のインデックス付き配列に適用され、インデックス
は維持されません。 [rsort 配列 を逆方向に並べ替える ] sort
[asort 配列をソートし、インデックス関係を維持します] 値の並べ替え、一般に 1 次元配列に適用され、インデックス関係を維持します
[arsort は 配列の ソートを逆にし、インデックス関係を維持します] は、asort の使用法
配列をキー名でソート ]
[ krsort キー名に従って配列を並べ替えます 逆方向 ]
=========================================== =========================
著作権に関する声明: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。