实现这一目标的最佳方法是什么?
当前回答
在现在的顺序吗?我写array_slice()。由于它是一个内置函数,它将比循环遍历数组,同时跟踪一个递增的索引直到N更快。
其他回答
在现在的顺序吗?我写array_slice()。由于它是一个内置函数,它将比循环遍历数组,同时跟踪一个递增的索引直到N更快。
使用array_slice ()
这是一个来自PHP手册的例子: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');
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));
?>
你可以这样使用array_slice:
$sliced_array = array_slice($array,0,$N);
如果你想获取前N个元素并将其从数组中移除,你可以使用array_splice()(注意“splice”中的“p”):
http://docs.php.net/manual/da/function.array-splice.php
$array_without_n_elements = array_splice($old_array, 0, N)