我有一个包含一些字符串和日期的数组,
[
{
date : '25-05-2018',
string : 'foo'
},
{
date : '15-01-2017,
string : 'baz'
},
{
date : '10-07-2018',
string : 'bar'
}
]
我需要根据日期字段对数组进行排序。有没有一种有效的方法可以对此数组进行排序?
注意:该数组可以有+250行,并且它们不是来自数据库。
答案 0 :(得分:1)
$json = '[
{
"date" : "25-05-2018",
"string" : "foo"
},
{
"date" : "15-01-2017",
"string" : "baz"
},
{
"date" : "10-07-2018",
"string" : "bar"
}
]';
$array = json_decode($json, true);
usort($array, function($a, $b) {
$a = DateTime::createFromFormat('d-m-Y', $a['date']);
$b = DateTime::createFromFormat('d-m-Y', $b['date']);
return $a < $b; //change direction for asc/desc
});
var_dump($array);
输出
array (size=3)
0 =>
array (size=2)
'date' => string '10-07-2018' (length=10)
'string' => string 'bar' (length=3)
1 =>
array (size=2)
'date' => string '25-05-2018' (length=10)
'string' => string 'foo' (length=3)
2 =>
array (size=2)
'date' => string '15-01-2017' (length=10)
'string' => string 'baz' (length=3)