实现这一目标的最佳方法是什么?
在现在的顺序吗?我会说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标志设置为__abc2来避免这种情况。(第4个参数,自5.0.2起可用)。
array_slice
preserve_keys
例子:
$output = array_slice($input, 2, 3, true);
输出:
array([3]=>'c', [4]=>'d', [5]=>'e');
你可以使用array_slice作为:
$sliced_array = array_slice($array,0,$N);
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)); ?>
如果你想从数组中移除前N个元素也,你可以使用array_splice()(注意“splice”中的“p”):
array_splice()
http://docs.php.net/manual/da/function.array-splice.php
像这样使用:$array_without_n_elements = array_splice($old_array, 0, N)
$array_without_n_elements = array_splice($old_array, 0, N)