我想知道是否有刪除數組元素的方法,同時將該值存儲在變量中。PHP - 刪除關聯數組元素並將其分配給一個變量在一個動作?
即
$array = [
'foo' => 'a',
'bar' => 'b'
];
// Perform the following with one action?
$var = $array['foo'];
unset($array['foo']);
編輯:我的意思是,如果它可以在不自定義函數來完成。
我想知道是否有刪除數組元素的方法,同時將該值存儲在變量中。PHP - 刪除關聯數組元素並將其分配給一個變量在一個動作?
即
$array = [
'foo' => 'a',
'bar' => 'b'
];
// Perform the following with one action?
$var = $array['foo'];
unset($array['foo']);
編輯:我的意思是,如果它可以在不自定義函數來完成。
它可以在某些情況下完成。
有兩種功能可以做你想要的東西。
array_pop($stack);
array_shift($stack);
但array_pop獲取並僅刪除最後一個元素和array_push第一陣列,如果你使用的是關聯數組這可能會導致你的代碼的unexxpected行爲。
但是,如果你可以重構你的數組以適應這些函數而不增加複雜性(這會使得整個事情變得毫無意義),那麼可以這樣做。
的函數的兩個鏈接是:
陣列功能的整個參考可以在這裏找到。也許你會找到一些能夠滿足你需要的東西: Array functions reference
你可以隨時編寫你自己的函數來完成它:function array_remove(&$ arr,$ key){$ val = $ arr [$ key ]。未設置($ ARR [$鍵]);返回$ val; }' –
如果是第一個或最後一個,array_shift()或array_pop()。但我不認爲你可以在沒有你自己的包裝功能的情況下做到這一點。 –
@NiettheDarkAbsol當然,但這不值得。 – BadHorsie