0

日付順に配列を再編成しようとしています。

たとえば、これは私の配列です:

Array(
      [0] => august 
      [1] => july 
      [2] => october 
      [3] => september
)

どうすれば時系列に再編成できるので、次のようになります。

Array(
      [0] => july 
      [1] => august 
      [2] => september 
      [3] => october
)
4

2 に答える 2

1

date_parse月の名前を解析して対応する数値に変換し、それらを並べ替えるために使用しksortます。

$myArray = array('august', 'july', 'october', 'september');
foreach($myArray as $value) {
    $m = date_parse($value);
    $output[$m['month']] = ucfirst($value);
}
ksort($output);
print_r($output);

出力:

Array
(
    [7] => July
    [8] => August
    [9] => September
    [10] => October
)

ソース: #12424968

デモ!

于 2013-08-19T11:55:50.380 に答える
1

これは、 strtotime が解析できる任意の日付で機能するはずです

function cmp($a, $b) 
{
    $a_time = strtotime($a);
    $b_time = strtotime($b);
    if ($a_time == $b_time) {
        return 0;
    }
    return ($a_time < $b_time) ? -1 : 1;    
}


// Array to be sorted
$array = array('november', 'august', 'december', 'february');
print_r($array);

// Sort and print the resulting array
usort($array, 'cmp');
print_r($array);

出力:

Array
(
    [0] => november
    [1] => august
    [2] => december
    [3] => february
)
Array
(
    [0] => february
    [1] => august
    [2] => november
    [3] => december
)
于 2013-08-19T12:00:51.680 に答える