2014-01-29 91 views
0

是否有分配一個「分數優先」在PHP中的數組的方式分配優先級排列值,然後排序?然後根據該優先級進行排序。由於我輸入:PHP:通過優先

Array(
    [princeton] => Princeton 
    [stanford] => Stanford 
    [yale] => Yale 
    [mit] => MIT 
    [harvard] => Harvard 
) 

我想輸出始終在頂部HarvardYale,其餘的按字母順序排序:

Array(
    [harvard] => Harvard 
    [yale] => Yale 
    [mit] => MIT 
    [princeton] => Princeton 
    [stanford] => Stanford  
) 

我檢查了asort()這確實英文字母及uasort()這是自定義,但我堅持如何「分配優先級」。任何幫助,將不勝感激!

+0

哪裏的重點是從哪裏來的? –

+0

我將聽筒他們的話,只有一對夫婦,但我被困在如何做分配。 – user1899415

+0

刪除和分類後加入到頂部alphabetly似乎微不足道 – 2014-01-29 00:11:02

回答

1

uasort將通過自己的比較函數排序的數組。我已經將函數放在哈佛或耶魯的第一個位置(這兩個函數的排序是不確定的,因爲您沒有指定),並按字母順序排序。

function cmp($a, $b) { 
    if ($a == 'Yale' || $a == 'Harvard') { 
     return -1; 
    } else if ($b == 'Yale' || $b == 'Harvard') { 
     return 1; 
    } else return strcmp($a, $b); 
} 

uasort($array, 'cmp'); 
0

假設你有類似

$priotities=array(
    [harvard] => 1 
    [yale] => 2 
    [mit] => 3 
    [princeton] => 4 
    [stanford] => 5 
) 

你可以

$final=$priorites; 
sort(final); 
foreach ($final as $k=>$v) 
    $final[$k]=$universities[$k];