タイムスタンプの配列に複数の年と月の複数のタイムスタンプがあると仮定すると(たとえば、123456、111222333、2112321321、232234422、1111343222、231111121など)、これらを次の形式に並べ替えます。
2012
06
09
2004
03
08
2003
01
02
これを行う方法はありますか?PHPを使用しています
タイムスタンプの配列に複数の年と月の複数のタイムスタンプがあると仮定すると(たとえば、123456、111222333、2112321321、232234422、1111343222、231111121など)、これらを次の形式に並べ替えます。
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]);
}
完璧ではありませんが、うまくいきます!