PHP - Ds Vector::sorted() Function



The PHP Ds\Vector::sorted() function is used to retrieve a sorted copy of a vector, with elements arranged in ascending order by default.

This function accepts an optional comparator callback function that can be provided to define a custom sorting order. This comparator function must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second argument.

Syntax

Following is the syntax of the PHP Ds\Vector::sorted() function −

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

Parameters

Following is the parameter of this function −

  • comparator − An optional comparator function compares the elements and returns an integer value.

Following is the syntax of the comparator function −

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

Return value

This function returns a sorted copy of the vector.

Example 1

If the comparator function is omitted, the Ds\Vector::sorted() function will return a sorted copy arranging elements in ascending order by default −

<?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); 
?>

Output

The above program produces the following output −

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
)

Example 2

Following is another example of the PHPDs\Vector::sorted() function. We use this function to retrieve a sorted copy of this vector ([2, 5, 8, 1, 4, 7]) using the comparator function −

<?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); 
?>

Output

After executing the above program, the following output will be displayed −

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
Advertisements