2017-04-24 39 views
-2

嗨,我有一个PHP数组像下面得到所有键重复值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) 
) 

请建议我该如何做到这一点。

感谢

+1

你尝试foreach循环或者已经等于什么? – RST

+1

您应该尝试**自己编写代码**。在[**做更多的研究**之后](https://meta.stackoverflow.com/q/261592/1011527)如果你有问题**发布你已经尝试过**的**清楚的解释不工作**并提供[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。阅读[如何问](http://stackoverflow.com/help/how-to-ask)一个很好的问题。请务必[参观](http://stackoverflow.com/tour)并阅读[this](https://meta.stackoverflow.com/q/347937/1011527)。 –

+1

一个非常简单的foreach循环可以解决这个问题。这是一个类或什么东西的项目? – Forbs

回答

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); 
    } 

感谢