PHP:返回数组的第一个/最后N个元素的任何函数

时间:2010-12-15 05:58:01

标签: php arrays

我想要一个将返回数组的最后/第一个N元素的函数。

例如:

$data = array( '0','1','2','3','4','5','6','7','8','9','10' );

如果

getItems( $data, '5', 'first' );
output: array( '0','1','2','3','4' )

如果

getItems( $data, '2', 'last' );
output: array( '9','10' );

如果

getItems( $data, '11', 'first' ); or getItems( $data, '11', 'last' );
output: array( '0','1','2','3','4','5','6','7','8','9','10' );

是否已经有这样的功能。如果没有,那么最短的方式是什么。

由于

2 个答案:

答案 0 :(得分:9)

您正在寻找array_slice()(手册页here)。

示例:

$arr = array(1, 2, 3, 4, 5);
$slice1 = array_slice($arr, 2); //take all elements from 3rd on
$slice2 = array_slice($arr, 0, 3); //take first three elements

答案 1 :(得分:1)

function getItems($data, $length, $startLocation){
   if($startLocation == 'first'){
      return array_slice($data, 0, $length);
   }else if($startLocation == 'last'){
      $offset = count($data) - $length - 1;
      if($offset < 0) $offset = 0;
      return array_slice($data, $offset, $length);
   }
}