【发布时间】:2011-04-12 19:34:57
【问题描述】:
最好的方法是什么?
【问题讨论】:
-
如果您需要找到一个函数来处理数组,请转到此处:php.net/manual/en/function.array.php 并查看函数。
-
而不是过来 SO !?
最好的方法是什么?
【问题讨论】:
使用 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');
【讨论】:
您可以将array_slice 用作:
$sliced_array = array_slice($array,0,$N);
【讨论】:
按当前顺序?我会说array_slice()。由于它是一个内置函数,它会比遍历数组同时跟踪递增索引直到 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”):
http://docs.php.net/manual/da/function.array-splice.php
像这样使用它:$array_without_n_elements = array_splice($old_array, 0, N)
【讨论】: