Удалить один элемент из массива с соответствующими ключами

У меня есть массив

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

и я хочу удалить только один элемент из этого массива с соответствующим ключом, как показано ниже:

unset($array['f']);

Однако при этом будут удалены все элементы с соответствующим ключом ‘f’, и останется только один элемент. Есть ли способ сделать что-то подобное, но применить его только к первому соответствующему элементу в массиве?

-4

Решение

Прежде всего, у вас есть синтаксическая ошибка.

$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');
1

Другие решения

я решил это, используя это согласно cmorrissy комментарий будет только один элемент, так что переменная показала мне кол-во, я должен проверить, если

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

0

если вы var_dump ($ массив); это будет выходной

var_dump($array);
array(
f => foo
g => good
)

так как у вас есть массив с тем же индексом, он будет отображаться как один, и поэтому он будет удален

0
По вопросам рекламы [email protected]