PHP - Ds Vector sort() 函数



PHP 的 Ds\Vector::sort() 函数用于 **就地** 对向量进行排序。就地排序表示它修改原始向量,而无需创建或存储任何新的内存。

此函数接受一个可选参数,您可以使用该参数指定标准,并且根据返回值对向量中的元素进行排序。

以下是比较器函数的一些重要要点列表:

  • 如果第一个元素大于第二个元素,则返回 -1。
  • 如果第一个元素小于第二个元素,则返回 1。
  • 如果第一个元素等于第二个元素,则返回 0。

语法

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

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

参数

此函数接受一个名为“comparator”函数的单个参数,如下所述:

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

以下是 comparator 函数的语法:

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

返回值

此函数不返回任何值。

示例 1

如果省略 comparator 函数,则向量元素将默认按 **升序** 自动排序:

<?php 
   $vector = new \Ds\Vector([60, 50, 40, 30, 20, 10]); 
   echo("The original vector: \n"); 
   print_r($vector);
   #using sort() function
   $vector->sort();
   echo("\nThe vector after sorted: \n"); 
   print_r($vector);
?>

输出

上述程序产生以下输出:

The original vector:
Ds\Vector Object
(
    [0] => 60
    [1] => 50
    [2] => 40
    [3] => 30
    [4] => 20
    [5] => 10
)

The vector after sorted:
Ds\Vector Object
(
    [0] => 10
    [1] => 20
    [2] => 30
    [3] => 40
    [4] => 50
    [5] => 60
)

示例 2

以下是 PHP Ds\Vector::sort() 函数的另一个示例。我们使用此函数通过使用 comparator 函数对该向量 ([2, 5, 8, 1, 6, 3]) 元素的顺序进行排序:

<?php 
   $vector = new \Ds\Vector([2, 5, 8, 1, 6, 3]); 
   echo("The original vector: \n"); 
   print_r($vector);
   #using sort() function
   $vector->sort(function($element1, $element2) { 
      return $element2 <=> $element1; 
   });
   echo("The decreasing sorted elements: \n");
   print_r($vector); 
?>

输出

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

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

示例 3

在下面的示例中,我们使用 sort() 函数对向量元素的顺序进行排序:

<?php 
   $vector = new \Ds\Vector(['d', 'a', 'c', 'e', 'b']); 
   echo("The original vector: \n"); 
   print_r($vector);
   #using sort() function
   $vector->sort();
   echo("\nThe decreasing sorted elements: \n");
   print_r($vector); 
?>

输出

执行上述程序后,将生成以下输出:

The original vector:
Ds\Vector Object
(
    [0] => d
    [1] => a
    [2] => c
    [3] => e
    [4] => b
)

The decreasing sorted elements:
Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
)
php_function_reference.htm
广告