1

次の配列を正しい時系列順に並べ替える方法はありますか?

[0] => Array
    (
        [date] => Sat, 12 Feb 2011 16:55:13 -0500
        [title] => Product 1
        [link] => http://blabla/product-1
    )

[1] => Array
    (
        [date] => Sat, 25 Sep 2010 17:52:24 -0400
        [title] => Product 2
        [link] => http://blabla/product-2
    )

[2] => Array
    (
        [date] => Sun, 05 Dec 2010 17:41:32 -0500
        [title] => Product 3
        [link] => http://blabla/product-3
    )

[3] => Array
    (
        [date] => Sun, 28 Nov 2010 09:14:39 -0500
        [title] => Product 4
        [link] => http://blabla/product-4
    )

[4] => Array
    (
        [date] => Tue, 07 Dec 2010 18:43:45 -0500
        [title] => Product 5
        [link] => http://blabla/product-5
    )

RSS フィードからの配列は、次のように表示されます。

配列を時系列で並べ替えたいと思います (明らかに [日付] に基づいて):製品 1、製品 5、製品 3、製品 4、製品 2

最新の製品を実際の順序で表示できるようにするため (彼らが私にくれた奇妙な順序ではありません!-ちなみに、偽の製品名、順序は本当に完全にランダムです)

どうもありがとう !

4

3 に答える 3

2

usort を使用: http://www.phpbuilder.com/manual/function.usort.php

2 つの「要素」 (この場合は日付文字列) を比較し、それらの正しい順序を返す比較関数を記述します。

編集: strtotime: http://php.net/manual/en/function.strtotime.phpを使用して、日付文字列をタイムスタンプに変換し、結果のタイムスタンプの比較を返すことができます。

于 2011-02-20T18:11:47.483 に答える
2

日付array_multisortの並べ替えられた配列の順序に従って、元の配列を並べ替えるために使用できます。

$keyValues = array();
foreach ($arr as $item) {
    $keyValues[] = strtotime($item['date']);
}
sort($keyValues);
array_multisort($arr, $keyValues);
于 2011-02-20T18:16:16.730 に答える
1

usort 関数を使用します。 http://php.net/manual/en/function.usort.php

于 2011-02-20T18:09:47.250 に答える