数组 函数
PHP Manual

uksort

(PHP 4, PHP 5)

uksort — 使用用户自定义的比较函数对数组中的键名进行排序

说明

bool uksort ( array &$array , callback $cmp_function )

本函数将使用用户提供的比较函数对数组中的键名进行排序。如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。

cmp_function 函数应接受两个参数,该参数将被 array 中的一对键名填充。比较函数在第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。

成功时返回 TRUE, 或者在失败时返回 FALSE.

Example #1 uksort() 例子

<?php
function cmp($a, $b)
{
    if (
$a == $b) {
        return 
0;
    }
    return (
$a > $b) ? -1 : 1;
}

$a = array(4 => "four", 3 => "three", 20 => "twenty", 10 => "ten");

uksort($a, "cmp");

foreach (
$a as $key => $value) {
    echo 
"$key: $value\n";
}
?>

以上例程会输出:

20: twenty
10: ten
4: four
3: three

参见 usort(), uasort(), sort(), asort(), arsort(), ksort(), natsort() 和 rsort()。

参数

array

The input array.

cmp_function

在第一个参数小于,等于或大于第二个参数时,该比较函数必须返回一个小于,等于或大于0的整数

int callback ( mixed $a, mixed $b )

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE.

范例

Example #2 uksort() example

<?php
function cmp($a, $b)
{
    
$a = preg_replace('@^(a|an|the) @', '', $a);
    
$b = preg_replace('@^(a|an|the) @', '', $b);
    return 
strcasecmp($a, $b);
}

$a = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);

uksort($a, "cmp");

foreach (
$a as $key => $value) {
    echo 
"$key: $value\n";
}
?>

以上例程会输出:

an apple: 3
a banana: 4
the Earth: 2
John: 1

参见


数组 函数
PHP Manual