2015-11-28 139 views
1

我有一個數組,其中包含另一個距離和ID的數組。我需要對數組的距離部分進行排序,因此ID仍然與其各自的距離相關。PHP排序一組多維數組

例如,

array 
(
    [0] => array(
        [0] => 170 
        [1] => 123abc 
    ) 
    [1] => array(
        [0] => 150 
        [1] => 456def 
    ) 
) 

現在,我想的距離上升,所以我的有序輸出會是什麼樣子排序:

array 
(
    [0] => array(
        [0] => 150 
        [1] => 456def 
    ) 
    [1] => array(
        [0] => 170 
        [1] => 123abc 
    ) 
) 

150比170更小,它已「移動」起來。

我已經看了這個PHP函數; array_multisort()等等。但是,這些只是對數組內的值進行排序,而不是對數組進行排序。

任何幫助表示讚賞。


編輯: 沒有所述第一陣列中的項目的一個固定數目的 - 它的範圍從1到無窮大。

+0

你可以試試'array_map()'將父陣列內的每個數組進行排序。 –

+0

爲什麼要使用'array_map',如果你可以簡單地使用'usort'或'uasort' –

+0

對不起,我應該說可以有多個'套'的距離和ID值。我不認爲在這種情況下使用'usort'將是可行的。 – CrabLab

回答

2

使用usort

usort($yourArray, function($a, $b) { 
    return $a[0] - $b[0]; // index 0 is your 150 or 170 
});