2012-11-06 3 views
-3

가능한 중복 : 나는 배열이 PHP custom sorting사용자 정의 종류

,

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

나는 위의 어레이에 두 개의 요청이 있습니다

  1. 어떻게 이것을받은, 보낸, 보류, 깃발, 건너 뛰기, 질의, 요청, 불만으로 정렬 할 수 있습니까?

  2. 배열에서 "요청"을 사용할 수 없다는 것을 알았 으면 값을 0으로 배열에 넣으려면 어떻게해야합니까? PHP 기능 usort()

+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

감사합니다. 그러나 그것은 Array ([0] => 1 [1] => 1 [2] => 8 [4] => 11 [5] => 11 [6] => 2) 값이 손실되었습니다. 어떻게 값을 유지할 수 있습니까? – Guns

+0

아, 대신'uksort'를 사용하십시오. – Halcyon

0

, 당신은이 함수의 결과에 따라 배열을 사용자 정의 함수를 작성하고 정렬 할 수 있습니다.

0

다음 usort을 시도

당신은 무엇을
$array['Request'] = 0; 
관련 문제