2017-07-07 20 views
-1

配列キーは日付で、並べ替え順序は日付順に並べ替える必要があります。以下は配列です:日付で配列を並べ替えるPHP

Array 
(
    [07/14/2017] => Array 
     (
      [ID] => 5442 
      [post_content] => Test1 
      [post_title] => Testevents1 
     ) 

    [01/11/2017] => Array 
     (
      [ID] => 5443 
      [post_content] => Test2 
      [post_title] => Testevents2 
     ) 
) 
+0

は、すでにHTTPS([こちら]答え://より多くの説明[ここ](https://stackoverflow.com/questions/17364127/how-can-i-sort)と一緒にstackoverflow.com/questions/38770210/how-to-sort-array-with-date-as-key) -arrays-and-data-in-php) –

+0

あなたの答えは以下の通りです[回答](https://stackoverflow.com/questions/2910611/php-sort-a-multidimensional-array -by-element-containing-date) –

答えて

2

ユーザー定義の比較関数を使用して、キーで並べ替え配列:

uksort($arr, function ($a, $b) { 
    $t1 = strtotime($a); 
    $t2 = strtotime($b); 
    if ($t1 == $t2) { 
     return 0; 
    } 
    return ($t1 > $t2) ? 1 : -1; 
}); 
+0

どのようにループするか複数のレコード –

+0

@RDMage複数のレコードはどのように見えますか?あなたのケースに合った 'for'や' foreach'はありますか? –

+0

ksort($ new)はforeachで正常に動作しました –

0

これにはuksortを使用できます。

uksort - あなたはそれを行うためにuksortを使用することができます

function cmp($keyA, $keyB) 
{ 
    // Your date parsing and comparison 

    // The comparison function must return an integer less than, equal to, 
    // or greater than zero if the first argument is considered to be respectively 
    // less than, equal to, or greater than the second. 
    // Note that before PHP 7.0.0 this integer had to be in the range 
    // from -2147483648 to 2147483647. 
} 

uksort($arr, "cmp") 
+0

複数のレコードをループする方法 –

関連する問題