2009-09-17 61 views
0

說,$ ARR包括多個子陣列與鍵「POS」,PHP中有內置的sortByKey()函數嗎?

$arr = sortByKey($arr,'pos'); 

在此之後,子陣列最小的「POS」值將首先訂購,等等。

編輯

$sub1 = array('pos' => 2); 
$sub2 = array('pos' => 1); 
$arr = array($sub1,$sub2); 
$arr = sortByKey($arr,'pos'); 

此功能後,$ ARR將數組($ SUB2,$ SUB1)

回答

2

查看ksort函數。

這裏是manual的功能。

抱歉,我也認爲你是CCASE你更尋找到uasort你將能夠定義一個函數來比較每個元素並對其進行排序

// Array to be sorted 

print_r($array); 

// Sort and print the resulting array 
uasort($array, create_function('$a,$b', 'return $a[\'pos\'] == $b[\'pos\'] ? 0 : (($a[\'pos\'] < $b[\'pos\']) ? -1 : 1);')); 
print_r($array); 

已經被測試不能確定雙?操作符...

Cheer

+0

不,它按鍵排序,但我需要它通過指定鍵的值來排序。 – omg 2009-09-17 05:40:48

+0

我已修改。 – RageZ 2009-09-17 05:43:35

+0

所以它完全需要2個功能? – omg 2009-09-17 05:44:25

0

讓我給你寫一個函數。它沒有測試。

function subarray_sort($array, $subkey) { 
    $sortarray=array(); 
    foreach($array as $item) { 
     $sortarray[]=$item[$subkey]; 
    } 

    array_multisort($sortarray, $array); 
}