2012-02-11 79 views
0

我只需要從數組中刪除最後兩個元素,它只包含3個元素,輸出這兩個刪除的元素,然後輸出未刪除的元素。我無法移除這兩個元素,也無法保留它們的鍵。遇到一個非常簡單的PHP數組問題

我的代碼是在這裏http://pastebin.com/baV4fMxs

這是目前輸出:Java的 的Perl 陣列

我希望它輸出: [一] => Perl和[二] => Java的 [零] => PHP

+0

[array_pop()](http://www.php.net/manual/en/function.array-pop.php) – Grexis 2012-02-11 22:28:24

+0

請你向我們展示你的代碼 – Cfreak 2012-02-11 22:37:56

+0

的http://引擎收錄。 com/nEpMRLKk有我的新代碼。它的工作原理,但有沒有辦法讓它顯示沒有前面的「數組」的數組? – stytown 2012-02-11 22:42:40

回答

0

它要恢復這兩個在我看來,值之前被刪除擺脫他們。考慮到這一點,我建議使用array_pop(),它同時返回數組中的最後一項並將其從數組中移除。

$val = array_pop($my_array); 
echo $val; // Last value 
$val = array_pop($my_array); 
echo $val; // Middle value 
// Now, $my_array has only the first value 
+0

謝謝,但有沒有辦法同時刪除它們,同時存儲它們? – stytown 2012-02-11 22:34:04

+0

如果你想讓它們成爲一個數組,'$ removed = array_splice($ my_array,-2);'將返回最後2個元素作爲數組。 – Grexis 2012-02-11 22:36:34

+0

例如,這裏是我的代碼:http://pastebin.com/baV4fMxs它正在輸出Java Perl 數組我想它輸出[One] => Perl和[Two] => Java – stytown 2012-02-11 22:37:13

0

你提到了鍵,所以我認爲它是一個關聯數組。爲了刪除一個元素,可以調用unset功能,像這樣:

unset ($my_array['my_key'])

執行此操作要刪除這兩個元素。

2
$last=array_splice($inputarray,-1); 
//$last has now key=>value of last element 

$middle=array_splice($inputarray,-1); 
//$middle has now key=>value of middle element 

//$inputarray has now only key=>value of first element 
+0

+1是關注問題最後一行的唯一答案。 – Farray 2012-02-11 22:35:59

0

array_pop會爲你做它很容易:

$array = array('one', 'two', 'three'); 

$last = array_pop($array); echo $last . "\n"; 
$second = array_pop($array); echo $second . "\n"; 
echo $array[0]; 

輸出:

three 
two 
one 

Demo

+0

@Downvoter,有什麼評論?特別是因爲我的答案與接受的答案相同? – nickb 2012-02-11 22:50:56

+0

原始問題的最後一句話是「我在清除這兩個元素方面遇到了問題,並且保留了它們的鍵。 'array_pop'不做任何事情來保存/檢索密鑰。我認爲接受的答案也是不正確的。 – Farray 2012-02-11 23:25:14