二维数组排序

// $array         二维数组
// $sort         排序的键名   按此键名排序
$array[] = array('id'=>'1','name'=>'zhangsan','age'=>'16');
$array[] = array('id'=>'2','name'=>'lisi','age'=>'17');
$array[] = array('id'=>'3','name'=>'wangwu','age'=>'18');
$sort = 'age';
array_multisort(new_array_column($array,$sort),SORT_DESC,$array);
print_r($array);

function new_array_column($array,$columnKey){
    // 如果不是php5.5+  则没有array_column()函数
    if(!function_exists('array_column')){ 
        $columnKeyIsNumber  = (is_numeric($columnKey))?true:false; 
        $indexKeyIsNull     = (is_null($indexKey))?true :false; 
        $result             = array(); 
        foreach((array)$array as $key=>$row){ 
            if($columnKeyIsNumber){ 
                $tmp= array_slice($row, $columnKey, 1); 
                $tmp= (is_array($tmp) && !empty($tmp))?current($tmp):null; 
            }else{ 
                $tmp= isset($row[$columnKey])?$row[$columnKey]:null; 
            } 
            $result[$key] = $tmp; 
        } 
        return $result; 
    }else{
        return array_column($array, $columnKey);
    }
}

 

posted @ 2017-06-09 11:26  大鱼海棠8  阅读(112)  评论(0编辑  收藏  举报