2012-12-04 52 views
-1

我有一個組,我需要數字排序的數組: 例如:數組排序數字在PHP

$a= array('Adam','maths',3,'physics',5,'sports',6) 
    $b= array('Mike','maths',6,'physics',2,'sports',8) 
    $c= array('Sam','maths',3,'physics',9,'sports',6) 
    $all = array($a,$b,$c) 

現在我需要通過只考慮數字$的所有排序。有沒有替代功能排序? THX

+3

會是什麼結果的樣子...? – deceze

+0

通常結果將是$ result = array($ b,$ c,$ a) – ader277

+0

@ ader277您的預期結果仍然不明確 – Baba

回答

0

開始與一個健全的陣列結構:

$array = array(
    'Adam' => array('maths' => 3, 'physics' => 5, 'sports' => 6), 
    'Mike' => array('maths' => 6, 'physics' => 2, 'sports' => 8), 
    'Sam' => array('maths' => 3, 'physics' => 9, 'sports' => 6) 
); 

然後,做一個簡單的自定義排序:

usort($array, function ($a, $b) { 
    if ($a['maths'] != $b['maths']) { 
     return $a['maths'] - $b['maths']; 
    } 
    if ($a['physics'] != $b['physics']) { 
     return $a['physics'] - $b['physics']; 
    } 
    return $a['sports'] - $b['sports']; 
}); 
+0

thx但這不是幫助我,因爲輸入不是我的,我的函數的輸出需要尊重相同的形式。 – ader277

+0

那麼,你應該能夠適應上述功能,以滿足您的需求。以第三,第五,第七等數組索引進行比較,而不是'$ a ['maths']'。 – deceze

1

是,使用sort功能,具有SORT_NUMERIC

這裏的demo

+0

對不起,我沒有很好地提出我的問題。我只是編輯,所以你可以明白我的意思 – ader277

+0

你想'全部'只包含數字? –

+0

nope我希望$ all變成$ all = array($ b,$ c,$ a) – ader277