2009-09-17 26 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); 
}