2012-05-01 50 views
0

這裏值的數組是我當前的代碼添加到陣列:排序的關鍵

foreach ($query->result() as $exp) { 
    $activities[] = array('type' => 'level', 'exp' => $exp->exp, 'timestamp' => $badge->timestamp); 
} 

我怎麼會去排序根據「時間戳」項的值這個數組?

回答

2

您將需要使用usort這將允許您使用用戶定義的函數對數組進行排序。

http://www.php.net/manual/en/function.usort.php

實施例:

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

$a = array(3, 2, 5, 6, 1); 

usort($a, "cmp"); 
+1

作爲獎勵,您可以使用匿名函數或lambda您的用戶定義功能。 – Zombaya

+0

什麼是$ a和$ b? – Sneaksta

+0

@Sneaksta他們都是數組的值。看一下手冊的鏈接,它應該向你解釋。 –

0

我會使用函數陣列multisort用於實際的排序,也我會不同地存儲值:

foreach ($query->result() as $exp) { 
    $activities[$badge->timestamp] = array('type' => 'level',...); 
} 
array_multisort($activities, SORT_ASC, $array); 

http://php.net/manual/en/function.array-multisort.php

+1

什麼是$數組變量? – Sneaksta

+0

我試圖把strtotime($ badge-> timestamp)作爲關鍵字,但它不會接受它。它似乎只喜歡字母,而不是數字。爲什麼是這樣? – Sneaksta