在PHP中对数组的特定时间进行排序
我需要得到某一天的最新时间。在本例中,来自一个星期五。我有一个名为在PHP中对数组的特定时间进行排序,php,arrays,Php,Arrays,我需要得到某一天的最新时间。在本例中,来自一个星期五。我有一个名为$arrayFriday的数组,它继承时间戳。 现在,我需要找出哪些时间戳是当天最新的 数组$arrayFriday: Array ( [0] => 1483691580 [1] => 1483696140 [2] => 1483701240 [3] => 1483720920 [4] => 1489142460 [5] => 1489144140
$arrayFriday
的数组,它继承时间戳。
现在,我需要找出哪些时间戳是当天最新的
数组$arrayFriday
:
Array
(
[0] => 1483691580
[1] => 1483696140
[2] => 1483701240
[3] => 1483720920
[4] => 1489142460
[5] => 1489144140
[6] => 1489150260
[7] => 1489750920
[8] => 1489760160
[9] => 1489765800
[etc.]
)
在这个数组中,有一些时间是我计算到的。
e、 g.06.01.2017 17:42是我回家的时间
输出(来自本例)应为:
Array
(
[0] => 1483720920
[1] => 1489150260
[2] => 1489765800
)
或者如果我从$integerFriday(GMT+1)回显它:
因此,输出也是一个数组,但只包含当天的最新时间戳
我的尝试:
foreach ($arrayFriday as $key => $value) {
if(date('m.d.Y', $value) == date('m.d.Y', $arrayFriday[$key-1])){
$integerFriday= $value;
} else {
echo date('l d.m.Y H:i', $integerFriday);
}
}
使用日期作为结果数组中的键。如果时间戳数组已排序,则只需执行以下操作。当您迭代时间戳时,同一日期的后续值将覆盖该日期键处的值,并且为每个日期留下最大的时间戳
foreach ($timestamps as $ts) {
$latest_times[date('Ymd', $ts)] = $ts;
}
必须事先对数组进行排序,才能使其正常工作。它看起来像是你的,但如果不是,那么
sort($timestamps)代码>首先。像这样的东西既短又甜:
rsort($arrayFriday);
$integerFriday = [$arrayFriday[0]];
foreach ($arrayFriday as $time) {
if(date('m.d.Y', end($integerFriday)) > date('m.d.Y', $time)){
$integerFriday[] = $time;
}
}
当然,列表越大,所需时间就越长,因为您正在对其进行排序。如果它总是被排序,那么您可以使用array\u reverse()
将其反转
输出:
Friday 17.03.2017 15:50
Friday 10.03.2017 12:51
Friday 06.01.2017 16:42
那么你想要什么输出呢?我写的输出(来自这个例子)应该是:
我的尝试是基于一个整数的回音,但是插入数组也是可能的。所以你想要这样:-我只需要给定数组的项目3、6和9:-),因为它们是特定日期的最新时间。我知道,这很令人困惑。我不这么认为。3,6,9因为它们是特定日期的最新时间。
不,显然不使用日期,因为关键是天才!谢谢-很好的解决方案。
Friday 17.03.2017 15:50
Friday 10.03.2017 12:51
Friday 06.01.2017 16:42