假设我在时间戳数组中有多个多年和几个月的时间戳(例如 123456、111222333、2112321321、232234422、1111343222、231111211 等),我想将它们排序为以下格式:
2012
06
09
2004
03
08
2003
01
02
有没有办法做到这一点?我正在使用 PHP
假设我在时间戳数组中有多个多年和几个月的时间戳(例如 123456、111222333、2112321321、232234422、1111343222、231111211 等),我想将它们排序为以下格式:
2012
06
09
2004
03
08
2003
01
02
有没有办法做到这一点?我正在使用 PHP
你可以这样做。
看看这是否能让你开始;它不完整,但可以处理大部分内容。只需添加一些内容,它应该可以按照您的意愿工作。
<?php
$timestamps = array();
for ($i = 0; $i < 100; ++$i) {
$ts = mktime(rand(0, 23), rand(0, 59), rand(0, 59), rand(1, 12), rand(1, 31), rand(2000, 2012));
$timestamps[] = $ts;
}
sort($timestamps);
$lastYear = null;
echo "<ul>\n";
foreach($timestamps as $ts) {
$year = date('Y', $ts);
if ($year != $lastYear) {
if ($lastYear != null) {
echo "</ul>\n";
}
$lastYear = $year;
echo "<li>$year<ul>\n";
}
echo "<li>" . date('m-d', $ts) . "</li>\n";
}
echo "</ul></ul>";
我创建了一个包含 100 个随机时间戳的数组,以在开头填充列表。
我找到了一个解决方案:
foreach($timestamps as $time){
$year = date('Y', $time);
$month = date('m', $time);
if(!$ts_arr[$year]){
$ts_arr[$year] = array();
}
array_push($ts_arr[$year], $month);
$ts_arr[$year] = array_unique($ts_arr[$year]);
}
它并不完美,但它有效!