2017-04-24 77 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); 
    } 

感謝