Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

PHP - Ds Sequence::slice() Function



The PHP Ds\Sequence::slice() function creates a sub-sequence of the given range from the original sequence. The sub-sequence is a part of the original sequence. For example, given a sequence ([1, 2, 3, 4]), you can create the sub-sequence such as ([1, 2]), ([1, 2, 3]), ([3, 4]) by specifying different ranges.

This function accepts an optional parameter named 'length'. Below is the list of important points about this parameter −

  • If the 'length' isnegative, the sequence stops that many elements from the end.
  • If the 'length' ispositive, the sub-sequence has that many elements in it.
  • If the 'length'exceedsthe sequence size, only values up to the end of the sequence will be included.
  • If the 'length' isnot provided, the sub-sequence will contain all the values between the 'index' and the end of the sequence.

Syntax

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

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

Parameters

Following are the parameters of this function −

  • index − An index at which the sub-sequence starts.
  • length − Specifies the number of elements to include in the sub-sequence.

Return value

This function returns a sub-sequence within the given range.

Example 1

If the length parameter is omitted and passed only the index parameter, the PHP Ds\Sequence::slice() function returns a sub-sequence starting at the given index till the end of the original sequence −

<?php 
   $seq = new \Ds\Vector([1, 2, 3, 4, 5]);
   echo "The original sequence: \n";
   print_r($seq);
   $index = 1;
   echo "The given index is: ".$index;
   echo "\nThe sub-sequence: \n";
   print_r($seq->slice($index));
?>

Output

The above program produces the following output −

The original sequence:
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
The given index is: 1
The sub-sequence:
Ds\Vector Object
(
    [0] => 2
    [1] => 3
    [2] => 4
    [3] => 5
)

Example 2

If both "index" and "length" parameters are passed, the PHPDs\Sequence::slice()function returns a sub-sequence within the given range (index, length) −

<?php 
   $seq = new \Ds\Vector(['a', 'e', 'i', 'o', 'u']);
   echo "The original sequence: \n";
   print_r($seq);
   $index = 0;
   $length = 3;
   echo "The given index is: ".$index;
   echo "\nThe given length is: ".$length;
   echo "\nThe sub-sequence: \n";
   print_r($seq->slice($index, $length));
?>

Output

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

The original sequence:
Ds\Vector Object
(
    [0] => a
    [1] => e
    [2] => i
    [3] => o
    [4] => u
)
The given index is: 0
The given length is: 3
The sub-sequence:
Ds\Vector Object
(
    [0] => a
    [1] => e
    [2] => i
)

Example 3

If the given "length" is negative, the sequence will stop that many values from the end −

<?php 
   $seq = new \Ds\Vector([10, 20, 30, 40, 50]);
   echo "The original sequence: \n";
   print_r($seq);
   $index = 1;
   $length = -2;
   echo "The given index is: ".$index;
   echo "\nThe given length is: ".$length;
   echo "\nThe sub-sequence: \n";
   print_r($seq->slice($index, $length));
?>

Output

Following is the output of the above program −

The original sequence:
Ds\Vector Object
(
    [0] => 10
    [1] => 20
    [2] => 30
    [3] => 40
    [4] => 50
)
The given index is: 1
The given length is: -2
The sub-sequence:
Ds\Vector Object
(
    [0] => 20
    [1] => 30
)

Example 4

If the given "index" is negative, only the last element will be included in the sub-sequence −

<?php 
   $seq = new \Ds\Vector(["Tutorials", "Point", "India"]);
   echo "The original sequence: \n";
   print_r($seq);
   $index = -1;
   echo "The given index is: ".$index;
   echo "\nThe sub-sequence: \n";
   print_r($seq->slice($index));
?>

Output

Once the above program is executed, it generates the following output −

The original sequence:
Ds\Vector Object
(
    [0] => Tutorials
    [1] => Point
    [2] => India
)
The given index is: -1
The sub-sequence:
Ds\Vector Object
(
    [0] => India
)
php_function_reference.htm
Advertisements