PHP Conference Japan 2024

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