使用PHP获取重复值的所有键

问题描述 投票:-2回答:2

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

我该怎么做?

php arrays key distinct-values
2个回答
0
投票
[

获取所有值的所有键很容易。

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

但是那不仅仅得到重复的值。有不同的方法可以做到这一点。一种方法是过滤结果以仅显示具有多个键的值。

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

-1
投票

我已经用下面的代码完成了它:

foreach($multiattrData as $key=>$value)
    if(array_key_exists($value, $out)){
    $out[$value][] = $key;}
    else{
         $out[$value] = array($key);  
    }
© www.soinside.com 2019 - 2024. All rights reserved.