本文實(shí)例講述了PHP實(shí)現(xiàn)根據(jù)數(shù)組某個(gè)鍵值大小進(jìn)行排序的方法。分享給大家供大家參考,具體如下:
問題:針對(duì)給定數(shù)組的某個(gè)鍵的鍵值進(jìn)行排序
解決方法:
//$a是排序數(shù)組,$b是要排序的數(shù)據(jù)集合,$result是最終結(jié)果
$b = array(
array('name'=>'北京','nums'=>'200'),
array('name'=>'上海','nums'=>'80'),
array('name'=>'廣州','nums'=>'150'),
array('name'=>'深圳','nums'=>'70')
);
$a = array();
foreach($b as $key=>$val){
$a[] = $val['nums'];//這里要注意$val['nums']不能為空,不然后面會(huì)出問題
}
//$a先排序
rsort($a);
$a = array_flip($a);
$result = array();
foreach($b as $k=>$v){
$temp1 = $v['nums'];
$temp2 = $a[$temp1];
$result[$temp2] = $v;
}
//這里還要把$result進(jìn)行排序,健的位置不對(duì)
ksort($result);
//然后就是你想看到的結(jié)果了
var_dump($result);
運(yùn)行結(jié)果:
array(4) {
[0]=>
array(2) {
["name"]=>
string(4) "北京"
["nums"]=>
string(3) "200"
}
[1]=>
array(2) {
["name"]=>
string(4) "廣州"
["nums"]=>
string(3) "150"
}
[2]=>
array(2) {
["name"]=>
string(4) "上海"
["nums"]=>
string(2) "80"
}
[3]=>
array(2) {
["name"]=>
string(4) "深圳"
["nums"]=>
string(2) "70"
}
}
PS:這里再為大家推薦一款關(guān)于排序的演示工具供大家參考:
在線動(dòng)畫演示插入/選擇/冒泡/歸并/希爾/快速排序算法過程工具:
http://tools.jb51.net/aideddesign/paixu_ys
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結(jié)》及《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- PHP多維數(shù)組指定多字段排序的示例代碼
- php自定義二維數(shù)組排序函數(shù)array_orderby用法示例
- PHP實(shí)現(xiàn)統(tǒng)計(jì)一個(gè)數(shù)字在排序數(shù)組中出現(xiàn)次數(shù)的方法
- PHP多維數(shù)組排序array詳解
- php usort 使用用戶自定義的比較函數(shù)對(duì)二維數(shù)組中的值進(jìn)行排序
- PHP編程實(shí)現(xiàn)多維數(shù)組按照某個(gè)鍵值排序的方法小結(jié)【2種方法】
- PHP實(shí)現(xiàn)二維數(shù)組根據(jù)key進(jìn)行排序的方法
- php常用數(shù)組array函數(shù)實(shí)例總結(jié)【賦值,拆分,合并,計(jì)算,添加,刪除,查詢,判斷,排序】
- PHP實(shí)現(xiàn)數(shù)組根據(jù)某個(gè)單元字段排序操作示例