«

二维数组按指定的键值排序

时间:2024-1-20 16:32     作者:韩俊     分类: Html+Css


关于这个问题,已经有更好的解决方案了,请参考:

php二维数组按某个字段排序

不过下面的代码仍可以供参考:

原创:将二维数组按指定的键值排序。

/*
function:二维数组按指定的键值排序
author:www.maopiaopiao.com
*/
function array_sort($array,$keys,$type='asc'){
    if(!is_array($array)||empty($array)||!in_array(strtolower($type),array('asc','desc'))) return '';
    $keysvalue=array();
    foreach($array as $key=>$val){
        $val[$keys]=str_replace('-','',$val[$keys]);
        $val[$keys]=str_replace(' ','',$val[$keys]);
        $val[$keys]=str_replace(':','',$val[$keys]);
        $keysvalue[] =$val[$keys];
    }
    asort($keysvalue);//key值排序
    reset($keysvalue);//指针重新指向数组第一个
    foreach($keysvalue as $key=>$vals){
        $keysort[]=$key;
    }
    $keysvalue=array();
    $count=count($keysort);
    if(strtolower($type)!='asc'){
        for($i=$count-1;$i>=0;$i--){
            $keysvalue[]=$array[$keysort[$i]];
        }
    }else{
        for($i=0;$i<$count;$i++){
            $keysvalue[]=$array[$keysort[$i]];
        }
    }
    return $keysvalue;
}

例如有下列这样一个数组:

$array=array(
    0=>array('id'=>8,'username'=>'phpernote'),
    1=>array('id'=>9,'username'=>'com'),
    2=>array('id'=>5,'username'=>'www')
);

现在需要将这个二维数组按id升序排列,则:

array_sort($array,'id','asc');

标签: javascript html css

热门推荐