2012-11-06 65 views
-3

可能重複: PHP custom sorting定製排序在陣列

我有一個數組,

Array 
(
    [Flag]  => 2 
    [Pending] => 11 
    [Received] => 11 
    [Sent]  => 8 
    [Skip]  => 5 
    [Complaint] => 1 
    [Query]  => 1 
) 

我有上述陣列兩個請求:

  1. 我怎樣才能將這個排序爲接收,發送,掛起,標記,跳過,查詢,請求,投訴。我們發現「請求」在數組中不可用,我如何將它推到數組中,其值爲零?

+2

你嘗試過什麼?我建議你閱讀'usort()'這是用戶定義的排序:http://php.net/manual/en/function.usort.php –

+0

做排序就像你必須做手動沒有任何也爲那 –

+0

你用什麼方式創建數組? – Schokea

回答

1
$array = array 
(
    "Flag" => 2 
    "Pending" => 11 
    "Received" => 11 
    "Sent" => 8 
    "Skip" => 5 
    "Complaint" => 1 
    "Query" => 1 
); 

$array["Request"] = 0; 

function my_sort($a, $b) { 
    $order = array("Received", "Sent", "Pending", "Flag", "Skip", "Query", "Request", "Complaint"); 
    return array_search($b, $order) - array_search($a, $order); 
} 

uksort($array, "my_sort"); 

print_r($array); 
+0

謝謝! ([0] => 1 [1] => 1 [2] => 5 [3] => 8 [4] => 11 [5] => 11 [6] => 2)價值觀失去了......我如何維護價值? – Guns

+0

啊,用'uksort'代替 – Halcyon

0

隨着PHP功能usort(),您可以根據這個函數的結果創建一個用戶定義的函數和整理你的陣列。

0

嘗試usort,緊接着,

$array['Request'] = 0;