2010-09-15 135 views
139

完成此操作的最佳方法是什么?获取数组的前N个元素?

+7

如果你需要找到一个函数来做一些数组,请到这里:http://www.php.net/manual/en/function.array.php并查看函数。 – Galen 2010-09-15 17:27:47

+12

而不是来过! – 2011-07-27 06:57:46

回答

248

使用array_slice()更快

这是从PHP manual: array_slice

$input = array("a", "b", "c", "d", "e"); 
$output = array_slice($input, 0, 3); // returns "a", "b", and "c" 
为例

只有一个小问题

如果数组索引是有意义的你,记得array_slice将重置并重新排序数字数组索引。您需要将preserve_keys标志设置为true以避免这种情况。 (第4个参数,自5.0.2起可用)。

例子:

$output = array_slice($input, 2, 3, true); 

输出:

array([3]=>'c', [4]=>'d', [5]=>'e'); 
+12

哇,3年编辑:)干得好。 – webnoob 2014-01-27 22:05:49

11

在当前顺序?我会说array_slice()。因为它是一个内置的功能,它会比通过数组循环,同时保持递增指数的跟踪,直到N.

21

您可以使用array_slice为:

$sliced_array = array_slice($array,0,$N); 
+0

这就是我完全想要的。谢谢 – 2015-10-12 11:40:07

0

array_slice()是尝试最好的事情,以下是例子:

<?php 
$input = array("a", "b", "c", "d", "e"); 

$output = array_slice($input, 2);  // returns "c", "d", and "e" 
$output = array_slice($input, -2, 1); // returns "d" 
$output = array_slice($input, 0, 3); // returns "a", "b", and "c" 

// note the differences in the array keys 
print_r(array_slice($input, 2, -1)); 
print_r(array_slice($input, 2, -1, true)); 
?>