2013-10-21 41 views
-1

我有一個數組PHP uasort - 按兩個鍵

$DATA = array(
array(
    "id" => "23", 
    "rate" => "4.555" 
), 
array(
    "id" => "12", 
    "rate" => "4.555" 
), 
array(
    "id" => "20", 
    "rate" => "4.555" 
), 

array(
    "id" => "29", 
    "rate" => 5.1025" 
) 
); 

現在我需要通過按鍵進行排序上面數組:率(升序)和ID(升序)。

所以:

function mySort($a, $b) { 

     return strcmp($a['rate'], $b['rate']); 

    } 

uasort($DATA,'mySort'); 

現在排序完美的,但只能通過率....

添加新funcion:

function mysortID ($a,$b){ //AD 
     return ($a['id'] > $b['id']) ? 1 : -1; 
    } 

讓我們嘗試:

uasort($DATA,'mySort'); 
uasort($DATA,'mySortID'); 

但不工作....如何呢?

+0

這個問題現在可以刪除,所以它不會妨礙很多其他重複的東西。 – hakre

回答

4
function mySort($a, $b) 
{ 
    // Check the rates 
    $res = strcmp($a['rate'], $b['rate']); 

    // If the rates are the same... 
    if ($res === 0) { 
     // Then compare by id 
     $res = $a['id'] > $b['id'] ? 1 : -1; 
    } 

    return $res; 
}