ArrayObject::uksort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayObject::uksort使用用户定义的比较函数按键排序条目

描述

public ArrayObject::uksort(callable $callback): true

此函数使用用户提供的比较函数对条目的键进行排序。键到条目的关联将被保留。

注意:

如果两个成员比较相等,则它们保留其原始顺序。在 PHP 8.0.0 之前,它们在排序数组中的相对顺序是未定义的。

参数

callback

比较函数必须返回一个整数,如果第一个参数分别小于、等于或大于第二个参数,则该整数小于、等于或大于零。

callback(mixed $a, mixed $b): int
警告

从比较函数中返回 *非整数* 值,例如 float,会导致回调返回值的内部强制转换为 int。因此,诸如 0.990.1 之类的值都将强制转换为 0 的整数值,这将比较这些值是否相等。

返回值

始终返回 true

变更日志

版本 描述
8.2.0 返回类型现在为 true;以前是 bool

示例

示例 #1 ArrayObject::uksort() 示例

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

$array = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);
$arrayObject = new ArrayObject($array);
$arrayObject->uksort('cmp');

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

上面的示例将输出

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

参见

添加注释

用户贡献的注释

此页没有用户贡献的注释。
To Top