2012-11-06 62 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;