私は配列を持っています
$array = ['f'=>'foo', 'f'=>'foo', 'f'=>'foo','g'=>'good'];
次のように、一致するキーを持つこの配列から1つのアイテムのみを削除したい:
unset($array['f']);
ただし、これにより、この一致するキー 'f' を持つすべてのアイテムが削除され、1 つのアイテムだけが残ります。このようなことを行う方法はありますが、配列内の最初の一致する項目にのみ適用されますか?
私は配列を持っています
$array = ['f'=>'foo', 'f'=>'foo', 'f'=>'foo','g'=>'good'];
次のように、一致するキーを持つこの配列から1つのアイテムのみを削除したい:
unset($array['f']);
ただし、これにより、この一致するキー 'f' を持つすべてのアイテムが削除され、1 つのアイテムだけが残ります。このようなことを行う方法はありますが、配列内の最初の一致する項目にのみ適用されますか?
まず、構文エラーがあります。
$array=$array(['f'=>'foo', 'f'=>'foo', 'f'=>'foo','g'=>'good']);
$ エクストラと [] エクストラがあり、同じキーを持つ多くのオフレコードを持つことはできません (最後のキーが前のものをオーバーライドするため)...定義する正しい方法
$array= array('f'=> array('foo', 'foo2', 'foo3'), 'g'=>'good');
値は de F キー内の新しい配列になります。そして、1つのレコードのみを削除できます
unset($array['f'][0]);
今、あなたの配列 var_dump:
$array= array('f'=> array('foo2', 'foo3'), 'g'=>'good');
cmorrissyのコメントに従ってこれを使用してこれを解決しましたが、アイテムは1つしかないため、変数が数量を示していました。
if($product[$id]['quantity']>1){ $product[$id]['quantity']--;}else{unset($product[$id]);}