PHP - Ds Set::slice() 函式



PHP 的 Ds\Set::slice() 函式用於檢索給定範圍的子集,範圍指的是索引和長度引數的值,範圍 = (索引, 長度)。

如果索引值為正數,則子集從開頭開始;如果索引值為負數,則子集從結尾開始。

以下是關於長度引數的一些關鍵點:

  • 如果給定的長度為正數,則結果集將最多包含這麼多值。
  • 如果長度導致溢位,則只包含直到集合結尾的值。
  • 如果給定的長度為負數,則集合將停止從結尾處計算這麼多值。
  • 如果沒有提供長度,則結果集將包含從起始索引到集合結尾的所有值。

語法

以下是 PHP Ds\Set::slice() 函式的語法:

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

引數

此函式接受兩個名為“index”和“length”的引數,如下所述:

  • index - 子集開始的位置。
  • length - 子集的長度。

返回值

此函式返回給定範圍的子集。

示例 1

以下程式演示了 PHP Ds\Set::slice() 函式的用法:

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

輸出

執行上述程式後,將顯示以下輸出:

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
)

示例 2

這是 PHP Ds\Set::slice() 函式的另一個示例。我們使用此函式檢索此集合(["Tutorials", "Point", "India", "Tutorix"]) 給定範圍 (1, 5) 的子集:

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

輸出

上述程式產生以下輸出:

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
)

示例 3

如果我們將長度引數值傳遞為-1,則子集從指定的索引開始,直到此集合 ([10, 20, 30, 40, 50, 60, 70, 80]) 的末尾,但不包括最後一個元素 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));   
?>

輸出

執行上述程式後,將生成以下輸出:

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
)

示例 4

如果給定的長度為負數,則集合將停止從結尾處計算這麼多值,子集從結尾開始。

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

輸出

上述程式生成以下輸出:

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
)

示例 5

如果索引和長度引數值都傳遞為-1,則slice()函式返回空子集()

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

輸出

執行上述程式後,將顯示以下輸出:

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
廣告