2013-12-16 283 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 
) 
相關問題