📅  最后修改于: 2023-12-03 14:45:13.751000             🧑  作者: Mango
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()
。