-2

私は多くの値を持つ多次元配列を持っています、これはそれの最小化されたバージョンです:

$test = array(
    array(
       'name'   => 'test',
       'date'   => '2012-04-30 11:06:01'
    ),

    array(
       'name'   => 'test2',
       'date'   => '2012-04-30 11:07:00'
    )
);

そしてそれは続く...

現在、日付はランダムな順序になっているので、この配列を最小の日付から最大の日付に並べ替える必要があります。より明確にするために、ここにフルスケールの配列ダンプがあります:http://pastebin.com/EzTNJpUx and asあなたが見ることができるsentのは日付であり、それはランダムな順序で進みます...

4

3 に答える 3

3

usortを使用する

マニュアルから:

この関数は、ユーザー指定の比較関数を使用して、配列をその値でソートします。並べ替えたい配列を重要な基準で並べ替える必要がある場合は、この関数を使用する必要があります。

function cmp($a, $b){
     return strtotime($a['date'])-strtotime($b['date']);
}

usort($test, 'cmp');
于 2012-04-30T08:38:15.130 に答える
1

私は行きarray_multisort()ます。

于 2012-04-30T08:43:41.460 に答える
1

このようなものを使用できると思います。

usort() および DateTime クラス (PHP5 以降を使用している場合)。

2 つの要素 (この場合は配列も) を比較する関数を定義する必要があります。

function cmp($array1, $array2)
{
  $date1 = new DateTime($array1['sent']);
  $date2 = new DateTime($array2['sent']);

  if($date1 == $date2)
    return 0;

  return ($date1 < $date2) ? -1 : 1;
}

次に、次のように呼び出します。

usort($test, 'cmp');
于 2012-04-30T08:42:18.077 に答える