-4

私は配列を持っています

$array = ['f'=>'foo', 'f'=>'foo', 'f'=>'foo','g'=>'good'];

次のように、一致するキーを持つこの配列から1つのアイテムのみを削除したい:

unset($array['f']);

ただし、これにより、この一致するキー 'f' を持つすべてのアイテムが削除され、1 つのアイテムだけが残ります。このようなことを行う方法はありますが、配列内の最初の一致する項目にのみ適用されますか?

4

3 に答える 3

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');
于 2016-10-11T20:15:27.293 に答える
0

cmorrissyのコメントに従ってこれを使用してこれを解決しましたが、アイテムは1つしかないため、変数が数量を示していました。

if($product[$id]['quantity']>1){ $product[$id]['quantity']--;}else{unset($product[$id]);}

于 2016-10-11T21:10:45.407 に答える