php usort 使用用戶(hù)自定義的比較函數(shù)對(duì)二維數(shù)組中的值進(jìn)行排序
今天發(fā)現(xiàn)一個(gè)很好用二維數(shù)組排序的php方法,usort,推薦給大家,以后二維數(shù)組里面,要按照一個(gè)字段的值排序用這個(gè)方法簡(jiǎn)單高效,例如下面的數(shù)組:
[guess_subject] => Array
(
[0] => Array
(
[subject_id] => 4587
[game_id] => 9228
[parent_category_id] => 78
[subject_title] => 全場(chǎng)比賽兩隊(duì)總得分之和是
[subject_date_time] => 1490668200
[status] => 2
[subject_answer] => 0
[totle_join] => 0
[max_nickname] =>
[max_currency] =>
)
[1] => Array
(
[subject_id] => 4588
[game_id] => 9228
[parent_category_id] => 78
[subject_title] => 本場(chǎng)比賽是否有加時(shí)賽
[subject_date_time] => 1490668200
[status] => 2
[subject_answer] => 0
[totle_join] => 0
[max_nickname] =>
[max_currency] =>
)
[2] => Array
(
[subject_id] => 4584
[game_id] => 9228
[parent_category_id] => 78
[subject_title] => 第二節(jié)兩隊(duì)總得分之和是
[subject_date_time] => 1490668200
[status] => 1
[subject_answer] => 0
[totle_join] => 0
[max_nickname] =>
[max_currency] =>
)
[3] => Array
(
[subject_id] => 4585
[game_id] => 9228
[parent_category_id] => 78
[subject_title] => 第三節(jié)兩隊(duì)總得分之和是
[subject_date_time] => 1490668200
[status] => 2
[subject_answer] => 0
[totle_join] => 0
[max_nickname] =>
[max_currency] =>
)
)
要按照status字段的升序排列的話,只需要這樣寫(xiě)
foreach($data as $key => &$value) {
// 按照status的升序排序,使用用戶(hù)自定義的比較函數(shù)對(duì)數(shù)組中的值進(jìn)行排序,
// 本函數(shù)將用用戶(hù)自定義的比較函數(shù)對(duì)一個(gè)數(shù)組中的值進(jìn)行排序。 如果要排序的數(shù)組需要用一種不尋常的標(biāo)準(zhǔn)進(jìn)行排序,那么應(yīng)該使用此函數(shù)。
// 在第一個(gè)參數(shù)小于,等于或大于第二個(gè)參數(shù)時(shí),該比較函數(shù)必須相應(yīng)地返回一個(gè)小于,等于或大于 0 的整數(shù)。
usort($value['guess_subject'], function($a, $b){
if ($a['status'] == $b['status'])
return 0;
return ($a['status'] < $b['status']) ? -1 : 1;
});
}
return $data;
就會(huì)按照status的 升序排列啦, status=1 的數(shù)組單元會(huì)排在前面
相關(guān)文章
php使用ffmpeg獲取視頻信息并截圖的實(shí)現(xiàn)方法
這篇文章主要介紹了php使用ffmpeg獲取視頻信息并截圖的實(shí)現(xiàn)方法,實(shí)例分析了php操作視頻與圖像的相關(guān)技巧,需要的朋友可以參考下2016-05-05
PHP基于imagick擴(kuò)展實(shí)現(xiàn)合成圖片的兩種方法【附imagick擴(kuò)展下載】
這篇文章主要介紹了PHP基于imagick擴(kuò)展實(shí)現(xiàn)合成圖片的兩種方法,結(jié)合實(shí)例形式分析了php使用imagick擴(kuò)展進(jìn)行圖片合并的具體操作方法與相關(guān)實(shí)現(xiàn)技巧,并附帶imagick擴(kuò)展下載地址與配置方法,需要的朋友可以參考下2017-11-11
幾種有用的變型 PHP中循環(huán)語(yǔ)句的用法介紹
for語(yǔ)句可以說(shuō)是PHP(同時(shí)也是多種語(yǔ)言)的循環(huán)控制部份最基本的一個(gè)語(yǔ)句了,for語(yǔ)句的執(zhí)行規(guī)律和基礎(chǔ)用法在這里就不多說(shuō),可以參見(jiàn)PHP手冊(cè)for語(yǔ)句部分2012-01-01
火車(chē)采集器 免費(fèi)版使出收費(fèi)版本功能實(shí)現(xiàn)原理
火車(chē)頭免費(fèi)版本不支持采集結(jié)果的外掛處理,比如采用php來(lái)輔助處理結(jié)果,而火車(chē)頭本身對(duì)于正則表達(dá)式的不完整支持,2009-09-09
使用php+apc實(shí)現(xiàn)上傳進(jìn)度條且在IE7下不顯示的問(wèn)題解決方法
本篇文章介紹了,使用php+apc實(shí)現(xiàn)上傳進(jìn)度條且在IE7下不顯示的問(wèn)題解決方法。需要的朋友參考下2013-04-04
PHP中UNIX時(shí)間戳和日期間的轉(zhuǎn)換與計(jì)算實(shí)例
這篇文章主要介紹了PHP中UNIX時(shí)間戳和日期間的轉(zhuǎn)換與計(jì)算實(shí)例,本文講解了將日期和時(shí)間轉(zhuǎn)變成UNIX時(shí)間戳、日期的計(jì)算等內(nèi)容,需要的朋友可以參考下2014-11-11
PHP實(shí)現(xiàn)在windows下配置sendmail并通過(guò)mail()函數(shù)發(fā)送郵件的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)在windows下配置sendmail并通過(guò)mail()函數(shù)發(fā)送郵件的方法,較為詳細(xì)的分析了Windows平臺(tái)sendmail配置步驟與相應(yīng)的使用技巧,需要的朋友可以參考下2017-06-06

