我有如下所示的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);
}