簡體   English   中英

使用匹配的鍵從數組中刪除一項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM