2017-03-15 64 views
1

我有三個陣列是這樣的:排序陣列只使用陣列的第一個元素在PHP

$a1 = array('55','something1','something2','something3'); 
$a2 = array('77','something14','something25','something36'); 
$a4 = array('66.6','something15','something25','something34'); 

和陣列這三個這樣的:通過使用sort()

$a = array($a1,$a2,$a4); 

我知道可以對數值進行排序,但在這裏我想排序上面的數組,這樣的排序方式只能通過數組$ a1,$ a2和$ a4的第一個數值元素,即輸出應該是第一個$ a1,因爲55小於66.6和77然後$因爲66.6小於77,$ a2.I不需要數組中元素的值$ a1,$ a2,$ a4被更改,只有數組$ a應該以數字方式重新排列。

+0

*只有陣列$ A應該是重新排列數字* - 如何? – RomanPerekhrest

+1

[按值排序多維數組]的可能重複(http://stackoverflow.com/questions/2699086/sort-multi-dimensional-array-by- value) – Stony

回答

1

使用usort

usort - 按使用用戶定義的比較 函數值的數組

$a1 = array('55','something1','something2','something3'); 
$a2 = array('77','something14','something25','something36'); 
$a4 = array('66.6','something15','something25','something34'); 


$array = [$a1, $a2, $a4]; 

usort($array, function($a, $b) { 
    if ($a[0] > $b[0]) { 
     return 1; 
    } else { 
     return -1; 
    } 
}); 


print_r($array); 

活例如:https://3v4l.org/QnUXc