首页 > 解决方案 > 如何在laravel php中按日期对json数组进行排序

问题描述

您好我正在使用 PHP laravel 生成 JSON 响应。这是我的函数,它将生成此响应

public function getReport($employeeCode){
    $postData = Input::all();

    $companyName = $postData['company_name'];
    $date = $postData['date'];
    $month = $postData['month'];
    $year = $postData['year'];
    $visitReason = $postData['visit_reason'];

    (database query applied here which gets data in $report)

    $countReportSize = count($report);
    $allDatas = [];
        for($i = 0; $i < $countReport; $i++)
        {
            $date = $report[$i]->day;
            $month = $report[$i]->month;
            $year = $report[$i]->year;
            $desc = $report[$i]->description;

            $countDateSize = explode(',',$date);
            $countMonth = explode(',',$month);
            $countYear = explode(',',$year);
            $countDescription = explode(',',$desc);

            for($j= 0; $j < count($countDateSize); $j++)
            {
                $data = [
                    'inquiry_id' => $report[$i]->inquiry_id,
                    'date' => $countDateSize[$j].'-'.$countMonth[$j].'-'.$countYear[$j],

                ];
                array_push($allDatas, $data);
            }
        }
        return response()->json($allDatas);
}

现在这个函数将生成下面给出的 JSON 响应,问题是如何按日期排序?

[
{
"inquiry_id": "2",
"date": "18-03-2018"
},
{
"inquiry_id": "2",
"date": "15-03-2018"
}
]

我需要按日期对这个回复进行排序,如下所示:

[
{
"inquiry_id": "2",
"date": "15-03-2018"
},

{
"inquiry_id": "2",
"date": "18-03-2018"
}
]

任何帮助将不胜感激。提前致谢。

标签: phpjsonlaravelsorting

解决方案


使用 $myArray = json_decode($json_info, true); 将 JSON 转换为数组;

然后使用

$date = array_column($myArray, 'date');
        array_multisort($date, SORT_ASC, $myArray);

现在 $myArray 将按日期升序排序,


推荐阅读