龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

具有通用性二维数组排序算法函数

时间:2014-07-22 14:50来源: 作者: 点击:
分享到:
a target=_blank href=http://list.qq.com/cgi-bin/qf_invite?id=08f814f703c7b4139f32b06cc2f7c0c1fd1b46f032c64622 rel=nofollow/a a href=http://qita.in/bMv target=_blank rel=nofollowimg alt=填写您的邮件地址,订阅我们的精彩内容:
填写您的邮件地址,订阅我们的精彩内容:转载地址: http://blog.qita.in/?post=468
<?php
//二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序
 
function array_sort($arr, $keys, $order=0) {

if (!is_array($arr)) {

    return false;

}

$keysvalue = array();

foreach($arr as $key => $val) {

   $keysvalue[$key] = $val[$keys];

}

if($order == 0){

    asort($keysvalue);

}else {

    arsort($keysvalue);

}

reset($keysvalue);

foreach($keysvalue as $key => $vals) {

    $keysort[$key] = $key;

}

$new_array = array();

foreach($keysort as $key => $val) {

    $new_array[$key] = $arr[$val];

}

return $new_array;

}

//eg
$arr = array('0'=>array('a'=>2,'b'=>4,'c'=>3),
             '1'=>array('a'=>45,'b'=>3,'c'=>3),
             '2'=>array('a'=>2,'b'=>7,'c'=>3),
);
$new_array = array_sort($arr,'a',0);
print_r($new_array);
精彩图集

赞助商链接