php将二维数组按日期(支持Ymd和Ynj格式日期)排序

TP5.1框架自带排序无法满足查询数据的Ynj格式日期排序,所以写了一个如下“将二维数组按日期(支持Ymd和Ynj格式日期)排序”。

思路:

将所有日期转化成时间戳保存在新数组里面(新数组1和新数组2),

将新数组2排序,

再将新数组2中的元素逐个查找在数组1中的索引,

根据索引将原始数组重新排序,

最终得到排序后的二维数组。

-

// 原始数组
$array = [
        [
            'date'=>'2019-2-18',
        ],
        [
            'date'=>'2019-2-4',
        ],
        [
            'date'=>'2019-2-19',
        ],
        [
            'date'=>'2019-2-21',
        ],
        [
            'date'=>'2019-2-24',
        ],

    ];

var_dump(order_date_array($array, 'desc', 'date'));


/*
 * 将二维数组按日期(支持Ymd和Ynj格式日期)排序
 * order_date_array(原始二维数组, desc还是asc, 日期在二维数组中的键)
 * */
function order_date_array($array, $order, $key){

    if (!$array){
        return [];
    }else{
        $_array = $array;
    }

    if (!$order){
        $_order = 'desc';
    }else{
        $_order = $order;
    }

    if (!$key){ // 二维数据中的Ynj日期的键
        $_key = 'date';
    }else{
        $_key = $key;
    }

    $new_array = [];
    $array_1 = [];
    $array_2 = [];

    // 日期转时间戳
    for ($t=0; $t

-

你可能感兴趣的:(php将二维数组按日期(支持Ymd和Ynj格式日期)排序)