The Vector class in PHP is an array that is automatically resized. The elements of a Vector instance are accessible via indexes.
This shot discusses the sorted method of the Vector class.
The sorted method returns a new Vector that is the sorted version of the current Vector instance, based on the $comparator method.
<?php
public Ds\Vector::sorted(callable $comparator = ?): Ds\Vector
?>
$comparator is a method with the following syntax:<?php
callback(mixed $a, mixed $b): int
?>
The method must return either -1, 0, or 1, specifying a “less than”, “equal to”, or “greater than” relationship between $a and $b, respectively.
Vector is returned that is a sorted version of the current Vector instance.None.
<?php$vec = new \Ds\Vector([4, 1, 5, 3, 2]);print_r($vec->sorted());print_r($vec->sorted(function($a, $b) {if ($a > $b) {return -1;} else if ($a < $b) {return 1;} else {return 0;}}))?>
Output:
Ds\Vector Object
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
Ds\Vector Object
(
[0] => 5
[1] => 4
[2] => 3
[3] => 2
[4] => 1
)
In the example above, a vector $vec is initialized with values 4, 1, 5, 3, and 2. The sorted method call is invoked twice on $vec and the results are printed. In the first sorted call, no argument is passed. Therefore, the default ascending order sorting took place. In the second sorted call, a function is passed as the $comparator argument, resulting in the Vector being sorted in descending order.
Free Resources