• PHP Video Tutorials

PHP - Ds Set::slice() Function



The PHP Ds\Set::slice() function is used to retrieve the sub-set of a given range, and the range refers to the values of the index and length parameters, range = (index, length).

If the index value is positive, the sub-set starts from the beginning, and if the index is negative, the sub-set starts from the end.

Following are some key points about the length parameter −

  • If the given length is positive, the resulting set will have up to that many values in it.
  • If the length results in an overflow, only values up to the end of the set will be included.
  • If given length is negative, the set will stop that many values from the end.
  • If a length is not provided, the resulting set will contain all values from the starting index to the end of the set.

Syntax

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

public Ds\Set::slice(int $index, int $length = ?): Ds\Set

Parameters

This function accepts two parameters named 'index' and 'length', which are described below −

  • index − The position at which the sub-set starts.
  • length − The length of the sub-set.

Return value

This function returns the sub-set of a given range.

Example 1

The following program demonstrates the usage of the PHP Ds\Set::slice() function −

<?php  
   $set = new \Ds\Set([1, 2, 3, 4, 5]);
   echo "The original set values are: \n";
   print_r($set);
   $index = 0;
   $length = 3;
   echo "The index and length values are: ".$index." and ".$length;
   echo "\nThe sub-set values are: \n";
   #using slice() method
   print_r($set->slice($index, $length));
?>

Output

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

The original set values are:
Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
The index and length values are: 0 and 3
The sub-set values are:
Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)

Example 2

Here is another example of the PHP Ds\Set::slice() function. We use this function to retrieve a sub-set of a given range (1, 5) of this set (["Tutorials", "Point", "India", "Tutorix"]) −

<?php  
   $set = new \Ds\Set(["Tutorials", "Point", "India", "Tutorix"]);  
   echo "The original set values are: \n";
   print_r($set);
   $index = 1;
   $length = 2;
   echo "\nThe index and length values are: ".$index." and ".$length;
   #using slice() function
   print_r($set->slice($index, $length));   
?>

Output

The above program produces the following output −

The original set values are:
Ds\Set Object
(
    [0] => Tutorials
    [1] => Point
    [2] => India
    [3] => Tutorix
)
The index and length values are: 1 and 2
Ds\Set Object
(
    [0] => Point
    [1] => India
)

Example 3

If we pass the length parameter value as -1, the sub-set starts from the specified index and up to the end of this set ([10, 20, 30, 40, 50, 60, 70, 80]), excluding the last element that is 80 −

<?php  
   $set = new \Ds\Set([10, 20, 30, 40, 50, 60, 70, 80]);  
   echo "The original set values are: \n";
   print_r($set);
   $index = 1;
   $length = -1;
   echo "The index and length values are: ".$index." and ".$length."\n";
   #using slice() function
   print_r($set->slice($index, $length));   
?>

Output

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

The original set values are:
Ds\Set Object
(
    [0] => 10
    [1] => 20
    [2] => 30
    [3] => 40
    [4] => 50
    [5] => 60
    [6] => 70
    [7] => 80
)
The index and length values are: 1 and -1
Ds\Set Object
(
    [0] => 20
    [1] => 30
    [2] => 40
    [3] => 50
    [4] => 60
    [5] => 70
)

Example 4

If the given length is negative, the set will stop that many values from the end, and the sub-set starts from the end.

<?php  
   $set = new \Ds\Set([2, 4, 6, 8, 10]);  
   echo "The original set values are: \n";
   print_r($set);
   $length = -1;
   echo "The length value is: ". $length."\n";
   #using slice() function
   print_r($set->slice($length));   
?>

Output

The above program generates the following output −

The original set values are:
Ds\Set Object
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)
The length value is: -1
Ds\Set Object
(
    [0] => 10
)

Example 5

If both index and length parameter values are passed as -1, the slice() function returns an empty sub-set ()

<?php  
   $set = new \Ds\Set(['a', 'e', 'i', 'o', 'u']);  
   echo "The original set values are: \n";
   print_r($set);
   $index = -1;
   $length = -1;
   echo "The index and length values are: ".$index." and ".$length."\n";
   #using slice() function
   print_r($set->slice($index, $length));   
?>

Output

Once the above program is executed, it will display the following output −

The original set values are:
Ds\Set Object
(
    [0] => a
    [1] => e
    [2] => i
    [3] => o
    [4] => u
)
The index and length values are: -1 and -1
Ds\Set Object
(
)
php_function_reference.htm
Advertisements