Привет у меня есть массив 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)
)
Пожалуйста, предложите, как я могу это сделать.
Спасибо
Получить все ключи для всех значений легко.
foreach ($array as $key => $value) {
$result[$value][] = $key;
}
Но это не только дубликаты значений. Есть разные способы сделать это. Один из способов — отфильтровать результат, чтобы показать только значения с более чем одним ключом.
$result = array_filter($result, function($item) {
return count($item) > 1;
});
Я сделал это с помощью кода ниже
foreach($multiattrData as $key=>$value)
if(array_key_exists($value, $out)){
$out[$value][] = $key;}
else{
$out[$value] = array($key);
}
Спасибо