📜  PHP | ArrayIterator uasort()函数(1)

📅  最后修改于: 2023-12-03 14:45:13.751000             🧑  作者: Mango

PHP | ArrayIterator uasort()函数

uasort() 是一个可以用于 ArrayIterator 类的排序方法,用于按照用户自定义的回调函数排序数组元素。

语法
public void ArrayIterator::uasort ( callable $cmp_function )
参数

cmp_function:用户自定义的比较函数。函数应该接受两个参数并返回一个整数值。如果第一个参数小于第二个,则返回负数;如果第一个参数大于第二个,则返回正数;如果两个参数相等,则返回 0。

返回值

void

示例

以下示例中,我们将展示如何使用 uasort()ArrayIterator 中的元素进行排序。

$array = ['d' => 4, 'a' => 1, 'b' => 2, 'c' => 3];
$iterator = new ArrayIterator($array);

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

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

输出结果:

a: 1
b: 2
c: 3
d: 4

在上面的示例中,我们使用了匿名函数作为回调函数,并按照元素的值进行排序。

注意事项

如果比较函数中的参数有类型错误,在 PHP 8.0 中将抛出致命错误。在 PHP 7.0 - 7.4 中会抛出一个警告。 这个错误在之前的版本中会被忽略,但不保证在将来的版本中会保持这一点。

提示: uasort() 可以与 ArrayIterator 类的其他方法一起使用,例如 current()key()valid()