• PHP Video Tutorials

PHP - Ds Set::sort() Function



The PHP Ds\Set::sort() function sorts the orders of elements in the current set. This function sorts the set in place, which means it does not create any new set but simply modifies the original set.

This function accepts an optional "comparator" which compares two values. Based on the comparator function return value, the elements will be sorted.

Syntax

Following is the syntax of the PHP Ds\Set::sort() function −

public void Ds\Set::sort([ callable $comparator ] )

Parameters

Following is the parameter of this function −

  • comparator − An optional comparator function compares two values and returns the following integer values.

It returns 1, if the first element is expected to be less than the second element.

It returns -1, if the first element is expected to be greater than the second element.

It returns 0, if the first element is expected to be equal to the second element.

Following is the syntax of the comparator function −

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

Return value

This function does not return any value.

Example 1

If the comparator function is omitted, the PHP Ds\Set::sort() function sorts the set elements in ascending order.

<?php 
   $set = new \Ds\Set([20, 10, 30, 50, 40]); 
   echo "Original set elements: \n";
   print_r($set);
   $set->sort(); 
   echo "After sorting the set elements: \n";
   print_r($set); 
?>

Output

The above program produces the following output −

Original set elements:
Ds\Set Object
(
    [0] => 20
    [1] => 10
    [2] => 30
    [3] => 50
    [4] => 40
)
After sorting the set elements:
Ds\Set Object
(
    [0] => 10
    [1] => 20
    [2] => 30
    [3] => 40
    [4] => 50
)

Example 2

Sort the set values in descending order using the comparator function.

The following is another example of the PHP Ds\Set::sort() function. We use this function to sort the elements of this set ([4, 5, 1, 3, 2]) in descending order.

<?php
   $set = new \Ds\Set([4, 5, 1, 3, 2]);
   echo "Original set elements: \n";
   print_r($set);
   $set->sort(function($x, $y) {
      return $y <=> $x;
   });
   echo "After sorting the set elements: \n";
   print_r($set);
?>

Output

The above program produces the following output −

Original set elements:
Ds\Set Object
(
    [0] => 4
    [1] => 5
    [2] => 1
    [3] => 3
    [4] => 2
)
After sorting the set elements:
Ds\Set Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)

Example 3

In the example below, we use the sort() function to sort the elements of this set ([10, 40, 50, 30, 20]) into a descending order using the comparator function. The comparator function compares values and returns integer values 1, -1, and 0.

<?php
   $set = new \Ds\Set([10, 40, 50, 30, 20]);
   echo "Original set elements: \n";
   print_r($set);
   $comparator = function($a, $b){
	   if($a > $b){
		   return -1;
	   }
	   else if($a < $b){
		   return 1;
	   }
	   else{
		   return 0;
	   }
   };
   $set->sort($comparator);
   echo "After sorting the set elements: \n";
   print_r($set);
?>

Output

On executing the above program, it will display the following output −

Original set elements:
Ds\Set Object
(
    [0] => 10
    [1] => 40
    [2] => 50
    [3] => 30
    [4] => 20
)
After sorting the set elements:
Ds\Set Object
(
    [0] => 50
    [1] => 40
    [2] => 30
    [3] => 20
    [4] => 10
)
php_function_reference.htm
Advertisements