Php 按日期范围筛选此json数组创建新json数组
我有一个包含这些键/值的json数组Php 按日期范围筛选此json数组创建新json数组,php,arrays,json,Php,Arrays,Json,我有一个包含这些键/值的json数组 { "results": [ { "date": "2013-15-5", "position": "23", "race" : "2" }, { "date": "2013-15-6", "position": "15", "race" : "4"
{
"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的范围谢谢
我们将json转换为php数组,并通过
array\u 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;
});
array\u过滤器($array,function($item){
$from=STROTIME(“2013-15-6”);
$to=标准时间(“2013-15-8”);
$ts=strottime($item['date']);
如果($ts>=$from&&$ts)数组总是按日期排序,如您的示例中所示?@koala\u dev是的,它总是按日期排序以筛选日期范围,则必须将日期字符串转换为内部日期值。json\u decode
,array\u filter
,匿名函数,DateTime
)你可以通过编写代码来过滤它。你在哪里遇到了路障来起草一些代码?嗨,谢谢你的帮助。我在测试时遇到了一个错误,因为匿名函数,我试图将函数$item移到过滤器之外,但这不是很好。你能看看我做了什么,也许可以帮助我完成这项工作吗需要安格斯吗thanks@Anagio您没有正确命名变量。谢谢,但第二次打印仍然显示所有3个日期,并且似乎没有经过筛选?已更新,但您需要更新日期它有Y-d-m,这不是受支持的格式@Anagio
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;
});