2016-09-27 60 views
-4

我想排序我的結果數組中的日期。如何在desc順序中排序的日期在php

我的代碼的一部分。

foreach($merge as $key => $msg_row){ 
    echo'<pre>';print_r(strtotime($msg_row['created'])); 
    } 

我應該爲進一步的日期排序過程做些什麼代碼?

+0

好的..感謝您的投票。 –

+1

你沒有告訴我們什麼在工作或沒有,結果你得到和期望得到。順便說一句,..你會標記任何其他問題解決? *「我應該爲進一步過程做些什麼代碼?」 - 做什麼? –

+1

你需要養成[接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)的習慣,它可以幫助你解決你的問題。您將獲得積分,其他人將被鼓勵幫助您。 –

回答

3

數組中的數據進行排序,你會需要一個功能比較的日期:

function dateCompare($a, $b) { 
    // newest dates at the top 
    $t1 = strtotime($a['created']); 
    $t2 = strtotime($b['created']); 
    return $t2 + $t1; // sort ascending 
} 

你叫使用usort()

usort($array, 'dateCompare'); 
+1

想知道我們是否會在這個旁邊看到那種涼爽的玉石;-) –

+1

我喜歡這個答案,它對我參加的一個項目很有效。我想感謝你接受你的(免費)時間;它並沒有充耳不聞。 –

1

此功能,您可以排序是這樣的:

<?php 
    $sortdate = array(
     '17/08/2015', 
     '02/01/2017', 
     '05/02/2014' 
    ); 

    function sortFunction($a, $b) 
     { 
     $datea = strtotime(str_replace('/', '-', $a)); 
     $dateb = strtotime(str_replace('/', '-', $b)); 
     if ($datea == $dateb) 
      { 
      return 0; 
      } 

     return ($datea < $dateb) ? 1 : -1; 
     } 

    usort($sortdate, "sortFunction"); 
    echo "<pre>"; 
    var_dump($sortdate); 

?> 
相關問題