PHP - Ds Sequence::slice() 函式



PHP 的 Ds\Sequence::slice() 函式建立一個給定範圍的子序列,該子序列是原始序列的一部分。例如,給定一個序列 ([1, 2, 3, 4]),可以透過指定不同的範圍來建立子序列,例如 ([1, 2]),([1, 2, 3]),([3, 4])。

此函式接受一個名為“length”的可選引數。以下是關於此引數的重要說明:

  • 如果“length”為負數,則序列停止在距離末尾這麼多元素的地方。
  • 如果“length”為正數,則子序列包含這麼多元素。
  • 如果“length”超過序列大小,則只包含直到序列末尾的值。
  • 如果沒有提供“length”,則子序列將包含“index”和序列末尾之間的所有值。

語法

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

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

引數

以下是此函式的引數:

  • index - 子序列開始的索引。
  • length - 指定子序列中包含的元素個數。

返回值

此函式返回給定範圍內的子序列。

示例 1

如果省略length引數,只傳遞index引數,則PHP Ds\Sequence::slice() 函式將返回從給定索引開始到原始序列末尾的子序列:

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

輸出

上述程式產生以下輸出:

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
)

示例 2

如果同時傳遞“index”和“length”引數,則 PHP Ds\Sequence::slice() 函式將返回給定範圍 (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));
?>

輸出

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

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
)

示例 3

如果給定的“length”為負數,則序列將停止在距離末尾這麼多值的地方:

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

輸出

以下是上述程式的輸出:

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
)

示例 4

如果給定的“index”為負數,則子序列中將只包含最後一個元素:

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

輸出

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

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