实现这一目标的最佳方法是什么?
答案 0 :(得分:312)
使用 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)