我想要一个将返回数组的最后/第一个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' );
是否已经有这样的功能。如果没有,那么最短的方式是什么。
由于
答案 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);
}
}