按指定key排序数组
Knowledge view:
- sort/rsort: sort by value and assigns new keys to the elements in array
- asort/arsort : sort by value and maintain index(key) association
- ksort/krsort: sort by key
- usort/uasort: usort assigns new keys to the elements in array ,but uasort maintain index(key) association
- uksort: sort by keys using user-defined comparison function
- natcasesort/natsort: sort alphanumeric strings
- array_multisort: Sort multiple or multi-dimensional arrays
实例分析,
[php]
$arr[0]['name'] = 'aaa';
$arr[0]['id'] = 10;
$arr[1]['id'] = 12;
$arr[1]['name'] = 'bbb';
function array_sort_key(array &$array, $key) {
global $_key;
if(!function_exists(_array_sort_key_cmp)) {
function _array_sort_key_cmp($a, $b) {
global $_key;
return strcmp($a[$_key], $b[$_key]);
}
}
$_key = $key;
$result = usort($array, "_array_sort_key_cmp");
unset($_key);
return $result;
}[/php]
另外一个例子
[php]$arr["name"][0]="aaa";
$arr["name"][1]="bbb";
$arr["name"][2]="ccc";
$arr["user"][0]="lee";
$arr["user"][1]="zhang";
$arr["user"][1]="chen";
array_multisort($arr['name'],SORT_ASC,SORT_STRING,$arr['usr']);[/php]
这里的意思是首先按照name升序排序,如果排序完后,有相同的value值再以user升序排序。如果对array_multisort不熟悉的,赶快去温习下吧。