如何将数组开头多个元素移除?(涉及IT技术)

10

我有一个包含20个键的数组。

$arr = array(
               "1" = "one",
               "2" = "two",
               .
               .
               .
               "20" = "twenty"
            );

现在我想忽略前十个键,我希望得到以下输出:

print_r($output);

// eleven, twelve, ..., twenty

这里有一个解决方案。使用 array_shift($arr) 函数,但是这个解决方案并不是最优的,因为我应该要使用这个函数的 10 倍。类似于这样:

$arr = array_shift($arr); // ignoring first key
$arr = array_shift($arr); // ignoring second key
.
.
.
$arr = array_shift($arr); // ignoring tenth key

有更好的解决方案吗?
3个回答

12

尝试这个:

$array = array_slice($array, 10);

了解更多信息,请查看此处


6
我想您可能需要 array_splice,它直接修改数组(与 array_shift 相同),而不是返回一个新的数组。
$n = 2;  // number of elements to shift
array_splice($array, 0, $n);

0
这个跟你有点不太一样。不过,你也可以试试看。看下面的例子。这样写代码会更舒服一些:
$students = array("one", "two", "three", "four", "five", "six", "more");
$to_be_shifted = 3;
for ($i = 1; $i <= $to_be_shifted; $i++) {
    array_shift($students);
}
print_r($students);

这怎么能算是对其他答案的改进呢? - undefined
为了快速访问,可以使用“for...next”语句。它可以代替重复编写相同的代码。不是吗? - undefined
相比于原始问题,是的。但是它已经有一个接受的答案,而且是在8年前只有一行代码的情况下... - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接