2017-04-18 52 views
-2

多維ARRY我有以下多維數組在PHP排序在PHP

$myarray[] = array(
    'sqldate' => $sqldate, 
    'posttime' => $posttime, 
    'sqldate1' => $sqldate1, 
    'head'  => $headl, 
    'story' => $story, 
    'source' => $tekstsource, 
    'http'  => $http, 
    'feed'  => $feed, 
    'F', 
    'ftypeT' => $ftypeT, 
); 

什麼是排序「發表時間」這個數組的最佳方式?

+1

將'ORDER BY'添加到您的查詢 –

+1

或者如果查詢數據是通過除直接db調用之外的其他東西發送給您的,您可以在其中控制查詢(API調用等),那麼您需要使用' usort()'並編寫你自己的排序功能。 – ivanivan

+0

實際上這背後沒有數據庫。一個循環檢索隨機數據,並在循環完成後,我需要排序存儲在'posttime – HB1963

回答

-1

@ivanivan建議使用usort()與自己的比較功能。這是優雅的解決方案。

這下面是其他的解決辦法:)

$helper = []; 
foreach ($myarray as $key => $row) 
    $helper[$key] = $row['posttime']; 
sort($myarray); 
$sorted = []; 
foreach ($helper as $key => $value) 
    $sorted[] = $myarray[$key]; 
+0

存儲的時間戳數組不知道爲什麼這是downvoted .... 至少它幫助我! – HB1963

+0

它被低估,因爲它是一個不雅而骯髒的解決方案。但如果它對你有幫助,你可以接受它作爲答案。 – Pharaoh

0

由於@Ivanivan建議:

function cmp($a, $b) 
{ 
    if ($a['posttime'] == $b['posttime']) { 
     return 0; 
    } 
    return ($a['posttime'] < $b['posttime']) ? -1 : 1; 
} 

usort($myarray, "cmp"); 

這是更好的解決方案。即使其他答案有效,也請對此進行測試。