PHP - Ds Map::slice() Function



The PHP Ds\Map::slice() function is used to retrieve a subset of the map defined by a starting index and length, where the 'length' parameter is optional. Below are the important points of the 'length' parameter −

  • If the given length is positive, the resulting subset will have up to that many pairs in it.
  • If the given length is negative, the range will stop that many pairs from the end.
  • If the length results in an overflow, only pairs up to the end of the map will be included.
  • If a length is not given, the resulting subset will contain all pairs between the starting index and the end of the map.

Syntax

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

public Ds\Map Ds\Map::slice( int $index [, int $length ] )

Parameters

Following are the parameters of this function −

  • index − The position at which the range starts. If negative, the range will start that far from the end.
  • length (optional) − The number of pairs that the subset contains.

Return value

This function returns the subset of the map.

Example 1

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

<?php 
   $map = new \Ds\Map([10, 20, 30, 40, 50]);
   echo "The original map is: \n";
   print_r($map);
   $index = 1;
   echo "The index value is: ".$index;
   echo "The subset is: \n";
   #using slice() function
   print_r($map->slice($index));
?>

Output

The above program displays the following output −

The original map is:
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 0
            [value] => 10
        )

    [1] => Ds\Pair Object
        (
            [key] => 1
            [value] => 20
        )

    [2] => Ds\Pair Object
        (
            [key] => 2
            [value] => 30
        )

    [3] => Ds\Pair Object
        (
            [key] => 3
            [value] => 40
        )

    [4] => Ds\Pair Object
        (
            [key] => 4
            [value] => 50
        )

)
The index value is: 1
The subset is:
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 1
            [value] => 20
        )

    [1] => Ds\Pair Object
        (
            [key] => 2
            [value] => 30
        )

    [2] => Ds\Pair Object
        (
            [key] => 3
            [value] => 40
        )

    [3] => Ds\Pair Object
        (
            [key] => 4
            [value] => 50
        )

)

Example 2

If we pass the index and length parameters to the PHP Ds\Map::slice() function, this function will return a subset starting at the index and continuing up to the given length.

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

Output

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

The original map: Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 0
            [value] => Tutorials
        )

    [1] => Ds\Pair Object
        (
            [key] => 1
            [value] => Point
        )

    [2] => Ds\Pair Object
        (
            [key] => 2
            [value] => India
        )

)
The index and length values are: 2, 1
The subset is: Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 2
            [value] => India
        )

)

Example 3

If the length parameter value exceeds the map size or overflows, only pairs up to the end of the map will be included.

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

Output

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

The original map: Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 0
            [value] => a
        )

    [1] => Ds\Pair Object
        (
            [key] => 1
            [value] => e
        )

    [2] => Ds\Pair Object
        (
            [key] => 2
            [value] => i
        )

    [3] => Ds\Pair Object
        (
            [key] => 3
            [value] => o
        )

    [4] => Ds\Pair Object
        (
            [key] => 4
            [value] => u
        )

)
The index and length values are: 1, 5
The subset is: Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 1
            [value] => e
        )

    [1] => Ds\Pair Object
        (
            [key] => 2
            [value] => i
        )

    [2] => Ds\Pair Object
        (
            [key] => 3
            [value] => o
        )

    [3] => Ds\Pair Object
        (
            [key] => 4
            [value] => u
        )

)
php_function_reference.htm
Advertisements