PHP 多维数组的排序,array_multisort的应用

开发中常用到多维数组的排序,在此将多维数组排序的方法记录下来,主要是应用了array_multisort函数。

array_multisort 函数返回一个排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。
注释:字符串键名将被保留,但是数字键名将被重新索引,从 0 开始,并以 1 递增。
注释:您可以在每个数组后设置排序顺序和排序类型参数。如果没有设置,每个数组参数会使用默认值。

 [
        'name'   => '李四',
        'height' => 40,
    ],
    1 => [
        'name'   => '张三',
        'height' => 30,
    ],
    2 => [
        'name'   => '王五',
        'height' => 50,
    ],
];
var_dump($students);
/**
 * 将students数组中的所有height的value,存储到一个key是height数组中
 */
$tmp = array();
foreach ( $students as $k => $v ) {
    foreach ( $v as $k2 => $v2 ) {
        if ( $k2 == 'height' ) {    //key是height的存储
            $tmp[] = $v2;    
        }
    }
}
var_dump($tmp);
/**
 * 升序.SORT_ASC 降序.SORT_DESC
 */
array_multisort($tmp,SORT_NUMERIC,SORT_ASC, $students);
var_dump($students);
exit;

/**
 * 可扩展为function
 * @param array 需要排序的多维数组
 * @param key   依据哪个key作为排序条件
 * @param order 升序 or 降序
 * @return 排序后的数组
 */
function multipleArraySort($array,$key,$order) {
    return $array;
}

你可能感兴趣的:(php)