我创建了这段代码来引用一个Json数组并构建了一个列表:
<?php
$json = file_get_contents('events.json');
$jsonArray = json_decode($json, true); // decode the JSON into an associative array
foreach ($jsonArray as $value) {
if (($value['active'] === 't') && ($value['fromDate'] >= $currentDate)) {
echo '<p>'.$value['title'].' '.$value['fromDate'].' - '.$value['toDate'].'</p>';
}
}
echo $currentDate;
?>
但是,我无法弄清楚如何通过Json文件中的值进行组织:
[
{
"active": "f",
"title": "My Third Event",
"city": "Robert Downey Jr.",
"ST": "Robert Downey Jr.",
"fromDate": "01/17",
"toDate": "01/20",
"website": "http://google.com",
"email": "info@test.com",
"logo": ""
},
{
"active": "t",
"title": "My First Event",
"city": "Robert Downey Jr.",
"ST": "Robert Downey Jr.",
"fromDate": "05/12",
"toDate": "01/20",
"website": "http://google.com",
"email": "info@test.com",
"logo": ""
}
]
我想使用“fromDate”在加载时动态组织每个条目。有什么建议吗? 仅供参考 - 我已经阅读了PHP手册和其他SO条目,但我是PHP新手,我还没有完全理解这些概念。谢谢!
答案 0 :(得分:1)
这应该适合你:
在这里,我只需通过比较&#34; fromDate&#34;的时间戳,就可以使用usort()
对数组进行排序。
usort($jsonArray, function($a, $b) {
if(strtotime($a["fromDate"]) == strtotime($b["fromDate"]))
return 0;
return strtotime($a["fromDate"]) > strtotime($b["fromDate"])? 1: -1;
});