[英]Delete one item from array with matching keys
我有一個數組
$array = ['f'=>'foo', 'f'=>'foo', 'f'=>'foo','g'=>'good'];
我只想從這個數組中刪除一個具有匹配鍵的項目,如下所示:
unset($array['f']);
但是,這將刪除具有此匹配鍵“f”的所有項目,並且僅保留一項。 有沒有辦法做這樣的事情,但只將它應用於數組中的第一個匹配項?
首先你有一個語法錯誤。
$array=$array(['f'=>'foo', 'f'=>'foo', 'f'=>'foo','g'=>'good']);
你有一個 $ extra 和 [] extras,並且你不能有很多相同的鍵的記錄(因為最后一個會覆蓋以前的)......定義的正確方法
$array= array('f'=> array('foo', 'foo2', 'foo3'), 'g'=>'good');
這些值將是 de F 鍵內的一個新數組。 然后你只能刪除一條記錄
unset($array['f'][0]);
現在你的數組 var_dump:
$array= array('f'=> array('foo2', 'foo3'), 'g'=>'good');
我已經根據cmorrissy評論使用它解決了這個問題,只有一個項目,所以該變量向我顯示了數量,我必須檢查是否
if($product[$id]['quantity']>1){ $product[$id]['quantity']--;}else{unset($product[$id]);}
如果你 var_dump($array); 這將是輸出
var_dump($array);
array(
f => foo
g => good
)
由於您有一個具有相同索引的數組,它將顯示為 1,這就是它被刪除的原因
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.