2013-12-16 27 views
2

我知道你可以使用“array_pop”去除数组中的最后一个元素。但是如果我想删除最后2或3,我该怎么办?如何删除阵列末尾的第n个元素

那么我将如何删除该数组中的最后2个元素?

<?php 
$stack = array("orange", "banana", "apple", "raspberry"); 
$fruit = array_pop($stack); 
print_r($stack); 
?> 
+0

试试['array_slice'(HTTP:/ /www.php.net/array_slice)。 –

回答

1

使用array_splice并指定要删除的元素数量。

$stack = array("orange", "banana", "apple", "raspberry"); 
$fruit = array_splice($stack, -2); 
print_r($stack); 
+2

正确的功能,但第二个参数是起始偏移量 - * not *是第三个参数的元素数量。使用'array_splice($ stack,-2)'移除从数组尾部计数的元素。 –

1

作为押韵:弹出两次,或array_slice!

换句话说:http://php.net/array_slice

+1

这不会改变原始数组。 –

+0

它没有。但我没有看到问题? – Nanne

+0

“那么,我将如何移除该数组中的最后2个元素? [我的重点] –

1

可以使用array_slice()带有负length

function array_remove($array, $n) { 
    return array_slice($array, 0, -$n); 
} 

测试:

print_r(array_remove($stack, 2)); 

输出:

Array 
(
    [0] => orange 
    [1] => banana 
) 
相关问题