PHP小技巧:通过数组中某键排序

PHP 2016-02-24

起步

<?php
$array = array(
    array('name'=>'name1','mark'=>60),
    array('name'=>'name2','mark'=>81),
    array('name'=>'name3','mark'=>30),
    array('name'=>'name4','mark'=>90),
    array('name'=>'name5','mark'=>96),
    array('name'=>'name6','mark'=>62),
    array('name'=>'name7','mark'=>43)
);

如果需要按照成绩进行排序

开始

/**
 *根据数组某个键进行排序,为迎合自带的asort等排序函数的使用习惯,这里数组使用引用
 *@param $array 待排序的数组
 *@param $key 键
 *@param $order 升序(asc)或降序(desc) 默认升序
 *@return void
 */
function sort_by_one_key(&$array, $key, $order = 'asc') {
    $arr_nums = $arr = array();
    foreach($array as $k=>$v){
        $arr_nums[$k] = $v[$key];
    }
    if($order == 'asc') {
        asort($arr_nums);
    }else{
        arsort($arr_nums);
    }
    foreach($arr_nums as $k=>$v) {
        $arr[] = $array[$k];
    }
    $array = $arr;
}

测试

sort_by_one_key($array,'mark');
var_dump($array);

本文由 hongweipeng 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

赏个馒头吧