PHP - Ds Vector::slice() 函数



PHP 的 Ds\Vector::slice() 函数用于从原始向量中检索给定范围内的子向量。子向量是原始向量的一部分。例如,向量 {1, 2} 是原始向量 {1, 2, 3} 的子向量。

此函数接受一个名为“length”的可选参数。以下是关于此参数的关键点列表:

  • 如果“length”为负数,则向量停止从末尾计算那么多元素。
  • 如果“length”为正数,则子向量包含那么多元素。
  • 如果“length”超过向量大小,则只包含直到向量末尾的值。
  • 如果未提供“length”,则子向量将包含“index”和向量末尾之间的所有值。

语法

以下是 PHP Ds\Vector::slice() 函数的语法:

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

参数

以下是此函数的参数:

  • index - 子向量开始提取的索引。
  • length - 子向量的长度。

返回值

此函数返回给定范围内的子向量。

示例 1

以下是 PHP Ds\Vector::slice() 函数的基本示例:

<?php   
   $vector = new \Ds\Vector([1, 2, 3, 4, 5]);  
   echo("The original vector: \n");   
   print_r($vector);
   $index = 1;
   $length = 2;
   echo "The index and length is: ".$index.", ".$length;
   #using slice() function
   $result = $vector->slice(1, 2); 
   echo("\nThe new sub-vector:\n");  
   print_r($result);
?>

输出

上述程序产生以下输出:

The original vector:
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
The index and length is: 1, 2
The new sub-vector:
Ds\Vector Object
(
    [0] => 2
    [1] => 3
)

示例 2

如果长度为负数,向量将停止从末尾计算那么多值。

以下是 PHP Ds\Vector::slice() 函数的另一个示例。我们使用此函数从给定范围 (1, -2) 的原始向量中检索子向量:

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

输出

执行上述程序后,将显示以下输出:

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

示例 3

如果长度值超过向量大小,则只包含直到向量末尾的值。

<?php 
   $vector = new \Ds\Vector(["Tutorials", "Point", "India"]);
   echo("The original vector: \n");
   print_r($vector);
   $index = 0;
   $length = 10;
   echo "The index and length is: ".$index.", ".$length;
   $result = $vector->slice($index, $length);
   echo("\nThe new sub-vector: \n");
   print_r($result);
?>

输出

执行上述程序后,将显示以下输出:

The original vector:
Ds\Vector Object
(
    [0] => Tutorials
    [1] => Point
    [2] => India
)
The index and length is: 0, 10
The new sub-vector:
Ds\Vector Object
(
    [0] => Tutorials
    [1] => Point
    [2] => India
)

示例 4

如果没有提供长度,则结果向量将包含索引和向量末尾之间的所有值。

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

输出

以下是上述程序的输出:

The original vector:
Ds\Vector Object
(
    [0] => a
    [1] => e
    [2] => i
    [3] => o
    [4] => u
)
The index is: 2
The new sub-vector:
Ds\Vector Object
(
    [0] => i
    [1] => o
    [2] => u
)
php_function_reference.htm
广告