按日期范围过滤此json数组创建新的json数组

时间:2013-08-20 08:14:06

标签: php arrays json

我有一个带有这些键/值的json数组

{
    "results": [
        {
            "date": "2013-15-5",
            "position": "23",
            "race" : "2"
        },
        {
            "date": "2013-15-6",
            "position": "15",
            "race" : "4"
        },
        {
            "date": "2013-15-7",
            "position": "20",
            "race" : "5"
        },
        {
            "date": "2013-15-8",
            "position": "9",
            "race" : "9"
        }
    ]
}

鉴于我有两个变量以相同的格式存储$from$to日期2013-15-5

如何过滤此json数组,以便输出显示 2013-15-6 - 2013-15-8 的范围谢谢

{
    "results": [
        {
            "date": "2013-15-6",
            "position": "15",
            "race" : "4"
        },
        {
            "date": "2013-15-7",
            "position": "20",
            "race" : "5"
        },
        {
            "date": "2013-15-8",
            "position": "9",
            "race" : "9"
        }
    ]
}

1 个答案:

答案 0 :(得分:1)

将json转换为php数组,并将其传递给array_filter,如下所示

array_filter($array, function ($item) {
       $from = strtotime("2013-15-6");
       $to = strtotime("2013-15-8");

       $ts = strtotime($item['date']);
       if ($ts >= $from && $ts <= $to) return true;
       return false; 
});