PHP - Ds Vector::sorted() 函数



PHP 的 Ds\Vector::sorted() 函数用于获取向量的已排序副本,默认情况下元素按升序排列。

此函数接受一个可选的比较器回调函数,可以提供该函数来定义自定义排序顺序。此比较器函数必须返回一个小于、等于或大于零的整数,如果第一个参数分别被认为小于、等于或大于第二个参数。

语法

以下是 PHP Ds\Vector::sorted() 函数的语法:

public Ds\Vector::sorted(callable $comparator = ?): Ds\Vector

参数

以下是此函数的参数:

  • comparator - 一个可选的比较器函数,比较元素并返回一个整数值。

以下是 comparator 函数的语法:

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

返回值

此函数返回向量的已排序副本。

示例 1

如果省略比较器函数,Ds\Vector::sorted() 函数将返回一个已排序的副本,默认情况下元素按升序排列:

<?php 
   $vector = new \Ds\Vector([6, 5, 4, 3, 2, 1]); 
   echo "The original vector: \n"; 
   print_r($vector);
   #using sorted() function
   $result = $vector->sorted(); 
   echo("\nThe sorted copy of vector: \n"); 
   print_r($result); 
?>

输出

以上程序产生以下输出:

The original vector:
Ds\Vector Object
(
    [0] => 6
    [1] => 5
    [2] => 4
    [3] => 3
    [4] => 2
    [5] => 1
)

The sorted copy of vector:
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)

示例 2

以下是 PHP Ds\Vector::sorted() 函数的另一个示例。我们使用此函数使用比较器函数来检索此向量的已排序副本 ([2, 5, 8, 1, 4, 7]):

<?php 
   $vector = new \Ds\Vector([2, 5, 8, 1, 4, 7]); 
   echo("The original vector: \n"); 
   print_r($vector);
   #using sorted() function
   $result = $vector->sorted(function($element1, $element2) { 
      return $element2 <=> $element1; 
   }); 
   echo("The sorted copy of a vector: \n"); 
   print_r($result); 
?>

输出

执行上述程序后,将显示以下输出:

The original vector:
Ds\Vector Object
(
    [0] => 2
    [1] => 5
    [2] => 8
    [3] => 1
    [4] => 4
    [5] => 7
)
The sorted copy of a vector:
Ds\Vector Object
(
    [0] => 8
    [1] => 7
    [2] => 5
    [3] => 4
    [4] => 2
    [5] => 1
)
php_function_reference.htm
广告