-1

これらの日付の配列があります。

.array(34) {
  [0]=>
  string(24) "Wed Nov 14 2012 09:27:49"
  [1]=>
  string(24) "Tue Nov 13 2012 15:49:06"
  [2]=>
  string(24) "Wed Nov 14 2012 09:27:49"
  [3]=>
  string(24) "Mon Dec 03 2012 13:58:16"
  [4]=>
  string(24) "Tue Nov 13 2012 14:20:16"
  [5]=>
  string(24) "Mon Dec 03 2012 16:13:38"
  [6]=>
  string(24) "Thu Aug 30 2012 15:05:56"
  [7]=>
  string(24) "Thu Aug 30 2012 15:11:32"
  [8]=>
  string(24) "Thu Aug 30 2012 15:21:12"
  [9]=>
  string(24) "Fri Oct 05 2012 10:11:28"
  [10]=>
  string(24) "Thu Aug 30 2012 15:22:58"
  [11]=>
  string(24) "Thu Aug 30 2012 14:38:13"
  [12]=>
  string(24) "Thu Aug 30 2012 15:22:00"
  [13]=>
  string(24) "Thu Aug 30 2012 15:03:15"
  [14]=>
  string(24) "Thu Aug 30 2012 15:00:11"
  [15]=>
  string(24) "Thu Aug 30 2012 15:01:25"
  [16]=>
  string(24) "Thu Aug 30 2012 15:20:26"
  [17]=>
  string(24) "Thu Aug 30 2012 14:59:21"
  [18]=>
  string(24) "Thu Aug 30 2012 15:26:48"
  [19]=>
  string(24) "Thu Aug 30 2012 14:58:34"
  [20]=>
  string(24) "Wed Sep 19 2012 09:42:57"
  [21]=>
  string(24) "Thu Aug 30 2012 15:24:34"
  [22]=>
  string(24) "Thu Aug 30 2012 15:06:50"
  [23]=>
  string(24) "Thu Aug 30 2012 14:57:42"
  [24]=>
  string(24) "Thu Aug 30 2012 15:09:06"
  [25]=>
  string(24) "Thu Aug 30 2012 14:53:13"
  [26]=>
  string(24) "Thu Aug 30 2012 15:25:35"
  [27]=>
  string(24) "Thu Oct 11 2012 15:19:10"
  [28]=>
  string(24) "Wed Oct 10 2012 11:27:15"
  [29]=>
  string(24) "Mon Dec 03 2012 16:24:06"
  [30]=>
  string(24) "Thu Nov 01 2012 10:00:42"
  [31]=>
  string(24) "Wed Nov 21 2012 11:08:36"
  [32]=>
  string(24) "Mon Dec 03 2012 16:14:29"
  [33]=>
  string(24) "Mon Dec 03 2012 16:30:31"
}

この配列を日付と時刻で並べ替えるにはどうすればよいですか? たとえば、"Mon Jan 01 2012 01:01:01" は配列の最初の要素になり、"Mon Jan 01 2012 01:01:03" は配列の 2 番目の要素になります。

4

2 に答える 2

0

これに使用できますusorthttp://php.net/manual/en/function.usort.php

function comparison($a, $b)
{
    return strtotime($a) > strtotime($b);
}

usort($input, 'comparison')

これにより、2つの文字列間で「比較」関数が呼び出され、時間に変換されて大きい方が返されます。

このコードは私の頭から離れて書かれていますがusort、前進する方法です。

于 2012-12-04T19:22:02.380 に答える
0

これがコードです。これは最善の解決策ではありませんが、うまくいくはずです

function sort_date($arr) {
  $size = count($arr);
  for ($i=0; $i<$size; $i++) {
      for ($j=0; $j<$size-1-$i; $j++) {
          if (strtotime($arr[$j+1]) < strtotime($arr[$j])) {
              swap($arr, $j, $j+1);
          }
      }
  }
  return $arr;
}

function swap(&$arr, $a, $b) {
  $tmp = $arr[$a];
  $arr[$a] = $arr[$b];
  $arr[$b] = $tmp;
}

//your first array
var_dump($arr);
//your sorted array
var_dump(sort_date($arr));
于 2012-12-04T18:37:37.163 に答える