使用PHP获取重复值的所有键
我有一个如下所示的PHP数组使用PHP获取重复值的所有键,php,arrays,key,distinct-values,Php,Arrays,Key,Distinct Values,我有一个如下所示的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(8
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);
}
您是否已经尝试过foreach循环或其他类似的循环?您应该尝试自己编写代码。如果您有问题,请发布您尝试过的内容,并清楚解释哪些内容不起作用,然后提供。读一个好问题。一定要仔细阅读。一个非常简单的foreach循环可以解决这个问题。这是一个课程项目还是什么?这不太好。你应该包括没有重复的元素,这样就有了混合的内容——这有助于区分正确答案和错误答案。为什么这个页面上没有一个可接受的答案?