PHP二维数组的排序方法

小白成长记之PHP二维数组的排序,在工作中往往遇到需要对二维数组进行排序,PHP本身提供的排序方法对二维数组来说不是很好(小白的自我感觉^V^),在一番资料查找下(东拼西凑)弄了一个目前经常使用的排序方法,使用至今还未遇到过问题,有需要可自行参考,不喜勿喷。

/**
 * 二维数组排序
 *
 * @param array $array  要排序的数组
 * @param string $field 要排序的字段
 * @param string $order 排序类型(ASC、DESC)
 *
 * @return array
 */
function ArrayOrder($array, $field="create_time", $order = 'ASC') {
    if (!$array || !$field) {
        return $array;
    }
    $order = strtoupper($order);
    if (!in_array($order, array('ASC', 'DESC'))) {
        $order = 'DESC';
    }
    $sort = array(
        'direction' => 'SORT_' . $order, //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
        'field' => $field, //排序字段
    );
    $arrSort = array();

    foreach ($array AS $uniqid => $row) {
        foreach ($row AS $key => $value) {
            $arrSort[$key][$uniqid] = $value;
        }
    }
    if ($sort['direction']) {
        array_multisort($arrSort[$sort['field']], constant($sort['direction']), $array);
    }

    return $array;
}

猜你喜欢

转载自blog.csdn.net/weixin_41839431/article/details/81225783