国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > PHP > 正文

【PHP】多維數(shù)組多個(gè)字段排序

2019-11-11 02:22:02
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

php】多維數(shù)組多個(gè)字段排序

對(duì)于多維數(shù)組,如何針對(duì)多個(gè)字段進(jìn)行排序。例如: $array1 = array( 0=>array('id'=>8,'name'=>'Apple','age'=> 18), 1=>array('id'=>8,'name'=>'Bed','age'=>17), 2=>array('id'=>5,'name'=>'Cos','age'=>16), 3=>array('id'=>5,'name'=>'Cos','age'=>14) );需要先對(duì)`id`進(jìn)行排序,然后依據(jù)排序結(jié)果,再對(duì)`name`進(jìn)行排序,最后再對(duì)`age`進(jìn)行排序。先構(gòu)造函數(shù): PRivate function _sortArrByManyField() { $args = func_get_args(); if(empty($args)){ return null; } $arr = array_shift($args); foreach($args as $key => $value){ if(is_string($value)){ $temp = array(); foreach($arr as $k=> $v){ $temp[$k] = $v[$value]; } $args[$key] = $temp; } } //引用值 $args[] = &$arr; call_user_func_array('array_multisort',$args); return array_pop($args); }調(diào)用函數(shù): $arr = sortArrByManyField($array1,'id',SORT_ASC,'name',SORT_ASC,'age',SORT_DESC);最后結(jié)果: array(4) { [0]=>array(3) { ["id"]=>int(5) ["name"]=>string(3) "Cos" ["age"]=>int(16) } [1]=>array(3) { ["id"]=>int(5) ["name"]=>string(3) "Cos" ["age"]=>int(14) } [2]=>array(3) { ["id"]=>int(8) ["name"]=>string(5) "Apple" ["age"]=>int(18) } [3]=>array(3) { ["id"]=>int(8) ["name"]=>string(3) "Bed" ["age"]=>int(17) } }解析:`func_get_args()`返回一個(gè)數(shù)組,其中每個(gè)元素都是目前用戶自定義函數(shù)的參數(shù)列表的相應(yīng)元素的副本。`call_user_func_array()`把第一個(gè)參數(shù)作為回調(diào)函數(shù)(callback)調(diào)用,把參數(shù)數(shù)組作(param_arr索引數(shù)組)為回調(diào)函數(shù)的的參數(shù)傳入。`array_multisort()` 參數(shù):bool array_multisort ( array &$arr [, mixed $arg = SORT_ASC [, mixed $arg = SORT_REGULAR [, mixed $... ]]] ),可以用來(lái)一次對(duì)多個(gè)數(shù)組進(jìn)行排序,或者根據(jù)某一維或多維對(duì)多維數(shù)組進(jìn)行排序。 關(guān)聯(lián)(string)鍵名保持不變,但數(shù)字鍵名會(huì)被重新索引。排序順序標(biāo)志:1.SORT_ASC - 按照上升順序排序。 2.SORT_DESC - 按照下降順序排序。排序類型標(biāo)志:1.SORT_REGULAR - 將項(xiàng)目按照通常方法比較。2.SORT_NUMERIC - 將項(xiàng)目按照數(shù)值比較。3.SORT_STRING - 將項(xiàng)目按照字符串比較。輸入數(shù)組被當(dāng)成一個(gè)表的列并以行來(lái)排序——這類似于 SQL 的 ORDER BY 子句的功能。第一個(gè)數(shù)組是要排序的主要數(shù)組。數(shù)組中的行(值)比較為相同的話就按照下一個(gè)輸入數(shù)組中相應(yīng)值的大小來(lái)排序,依此類推。`array_pop()`彈出并返回 array 數(shù)組的最后一個(gè)單元,并將數(shù)組 array 的長(zhǎng)度減一。如果 array 為空(或者不是數(shù)組)將返回 NULL。 此外如果被調(diào)用不是一個(gè)數(shù)則會(huì)產(chǎn)生一個(gè) Warning。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 苗栗县| 宾川县| 石渠县| 庆城县| 洪泽县| 望都县| 广宗县| 田阳县| 方正县| 万州区| 门头沟区| 南乐县| 井研县| 巴彦县| 麦盖提县| 会同县| 荔波县| 潮州市| 蓬莱市| 商都县| 错那县| 南江县| 松阳县| 庄浪县| 晋江市| 呼图壁县| 建宁县| 哈密市| 哈尔滨市| 晋宁县| 铜川市| 水富县| 乌鲁木齐县| 喜德县| 扎兰屯市| 易门县| 阿克苏市| 方山县| 元氏县| 紫金县| 汾阳市|