массивы — получить все ключи для повторяющихся значений Stack Overflow

Привет у меня есть массив PHP, как показано ниже

Array
(
[825] => ca_knife_features
[838] => ca_knife_features
[795] => ca_knife_handle_materials
[853] => ca_knife_handle_materials
)

и я хочу объединить все ключи для одинаковых значений и сделать значение в качестве ключа, как показано ниже

Array
(
[ca_knife_features]=>array(825,838)
[ca_knife_handle_materials]=>array(795,853)
)

Пожалуйста, предложите, как я могу это сделать.

Спасибо

-2

Решение

Получить все ключи для всех значений легко.

foreach ($array as $key => $value) {
$result[$value][] = $key;
}

Но это не только дубликаты значений. Есть разные способы сделать это. Один из способов — отфильтровать результат, чтобы показать только значения с более чем одним ключом.

$result = array_filter($result, function($item) {
return count($item) > 1;
});
0

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

Я сделал это с помощью кода ниже

foreach($multiattrData as $key=>$value)
if(array_key_exists($value, $out)){
$out[$value][] = $key;}
else{
$out[$value] = array($key);
}

Спасибо

-1

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