У меня есть массив, который выглядит следующим образом:Как я могу подсчитать и уменьшить значение значения в массиве?
Array
(
[0] => Array
(
[name] => test
[...] => ...
)
[1] => Array
(
[name] => wine
[...] => ...
)
[2] => Array
(
[name] => wine
[...] => ...
)
)
Теперь, что я хочу достичь что-то вроде этого:
Array
(
[0] => Array
(
[name] => test
[occurrence] => 1
[...] => ...
)
[1] => Array
(
[name] => wine
[occurence] => 2
[...] => ...
)
)
Короче говоря, я хочу дедуплицировать элементы, основанные на уникальной name
ключ, и я хочу добавить счетчик occurrence
к результату, который говорит мне, как часто каждый элемент произошел. Элементы имеют гораздо больше ключей, которые должны быть сохранены (сохранение значений первого вхождения в порядке).
На каком ключе вы считаете дубликат (только на ключ имени), а также какой идентификатор будет иметь этот результирующий элемент массива? – Standej
Извините, у меня мало терпения, прокручивая назад и вперед, чтобы определить разницу в ваших массивах. Упрощенный образец будет очень приветствуем. Однако в общем случае для дедупликации массивов используйте id как ключ: '$ deduped [$ item ['name']] = $ item'. Просто переверните все элементы, установив ключ в новый массив, который легко позволяет проверить, существует ли значение или нет, и соответственно увеличивать счетчик. – deceze
@Standej ключ - это «имя», и было бы неплохо сохранить первое появление дублированных элементов. – Jacques