Php 将数组重新构造为按日期降序排列
我有一个多维数组,它的索引是Php 将数组重新构造为按日期降序排列,php,arrays,Php,Arrays,我有一个多维数组,它的索引是['dates']。在['dates']中有另一个索引,在['date\u time']中有一个包含一些数据的索引 目前,阵列这一部分的顺序是从最早的日期/时间到最新的日期/时间。我希望将此反转,以便第一个元素是最近的数据 以下是数据的子集: array(4) { [0]=>array(3) { ["id"]=>string(4) "1279" ["name"]=>string(13) "account_name" ["d
['dates']
。在['dates']
中有另一个索引,在['date\u time']
中有一个包含一些数据的索引
目前,阵列这一部分的顺序是从最早的日期/时间到最新的日期/时间。我希望将此反转,以便第一个元素是最近的数据
以下是数据的子集:
array(4) {
[0]=>array(3) {
["id"]=>string(4) "1279"
["name"]=>string(13) "account_name"
["dates"]=>array(7) {
[0]=>array(3) {
["date_time"]=>string(19) "2014-11-14 09:30:03"
["follower_count"]=>string(4) "1567"
["gains_losses"]=>string(4) "1567"
}
[1]=>array(3) {
["date_time"]=>string(19) "2014-11-14 16:30:35"
["follower_count"]=>string(4) "1566"
["gains_losses"]=>string(2) "-1"
}...
您可以使用带有格式的Date obj而不是strotime来避免意外
// Comparison function
function cmp($compare, $with) {
$a = $compare['date_time'];
$b = $with['date_time'];
if (strtotime($a) == strtotime($b)) {
return 0;
}
return ($a > $b) ? -1 : 1;
}
foreach($your_arr as &$item){
uasort($item['dates'], 'cmp');
}
关于如何做到这一点,可能存在重复的问题。由于您的日期是YYYY-MM-DD格式,您可以按值对其进行排序。我刚刚将此函数添加到代码中,但似乎没有看到任何更改。我也没有看到任何错误。应该在哪里调用该函数?我添加了&operator,以便foreach修改$your\u数组。再试一次,对不起,J