php中怎么利用uasort()自定義排序 多維數(shù)組,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)公司始終堅持【策劃先行,效果至上】的經(jīng)營理念,通過多達十年累計超上千家客戶的網(wǎng)站建設總結了一套系統(tǒng)有效的推廣解決方案,現(xiàn)已廣泛運用于各行各業(yè)的客戶,其中包括:成都封陽臺等企業(yè),備受客戶稱揚。
php內置的排序函數(shù)很多;正反各種排;
常用的排序函數(shù):
sort() - 以升序對數(shù)組排序
rsort() - 以降序對數(shù)組排序
asort() - 根據(jù)值,以升序對關聯(lián)數(shù)組進行排序
ksort() - 根據(jù)鍵,以升序對關聯(lián)數(shù)組進行排序
arsort() - 根據(jù)值,以降序對關聯(lián)數(shù)組進行排序
krsort() - 根據(jù)鍵,以降序對關聯(lián)數(shù)組進行排序
基本都能滿足需求了;關于這些函數(shù)的使用方法就不多啰嗦了;
但是在項目的實際開發(fā)中還是會有些更加苛刻的排序需求;今天要介紹的排序函數(shù)是: uasort()
uasort主要是用在需要按照自定義的方法并且保留索引關系對多維數(shù)組的排序上;
有如下數(shù)組
$sort_array = array( "array1" => array( 'word'=>'test1', 'sortnumber'=>1, ), 'array3'=>array( 'word'=>'test4', 'sortnumber'=>4, ), 'array2'=>array( 'word'=>'test3', 'sortnumber'=>3, ), 'array5'=>array( 'word'=>'test5', ), 'array4'=>array( 'word'=>'test2', 'sortnumber'=>2, ), );
需求是按照sortnumber以升序的方式排序;
首先需要寫一個自定義排序的規(guī)則;
// 自定義排序函數(shù) function my_sort($a,$b){ $prev = isset($a['sortnumber']) ? $a['sortnumber'] : 0; $next = isset($b['sortnumber']) ? $b['sortnumber'] : 0; if($prev == $next)return 0; return ($prev<$next) ? -1 : 1; } echo '排序前:
'; print_r($sort_array); uasort($sort_array, "my_sort"); echo "排序后:
"; print_r ($sort_array);得到的結果:
排序前: Array ( [array1] => Array ( [word] => test1 [sortnumber] => 1 ) [array3] => Array ( [word] => test4 [sortnumber] => 4 ) [array2] => Array ( [word] => test3 [sortnumber] => 3 ) [array5] => Array ( [word] => test5 ) [array4] => Array ( [word] => test2 [sortnumber] => 2 ) ) 排序后: Array ( [array5] => Array ( [word] => test5 ) [array1] => Array ( [word] => test1 [sortnumber] => 1 ) [array4] => Array ( [word] => test2 [sortnumber] => 2 ) [array2] => Array ( [word] => test3 [sortnumber] => 3 ) [array3] => Array ( [word] => test4 [sortnumber] => 4 ) )看完上述內容,你們掌握php中怎么利用uasort()自定義排序 多維數(shù)組的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)站題目:php中怎么利用uasort()自定義排序多維數(shù)組
當前網(wǎng)址:http://weahome.cn/article/jhoojg.html