获取数组的前N个元素?

时间:2010-09-15 17:20:47

标签: php arrays

实现这一目标的最佳方法是什么?

5 个答案:

答案 0 :(得分:312)

使用 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');

答案 1 :(得分:27)

您可以将array_slice用作:

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

答案 2 :(得分:12)

按当前顺序?我会说array_slice()。由于它是一个内置函数,它比循环遍历数组更快,同时跟踪递增索引直到N.

答案 3 :(得分:4)

array_slice()是最好的尝试,以下是示例:

foreach

答案 4 :(得分:1)

如果要获取前N个元素并也要从数组中删除它,则可以使用array_splice()(请注意“拼接”中的“ p”):

http://docs.php.net/manual/da/function.array-splice.php

像这样使用它:$array_without_n_elements = array_splice($old_array, 0, N)