2016-03-07 69 views
1

我有這個數據集的工作:檢查數組中的鍵值的所有組合?

Array 
(
    [John Doe] => Array 
     (
      [137] => 7 
      [22] => 8 
      [145] => 7 
     ) 

    [George] => Array 
     (
      [143] => 2 
      [18] => 7 
     ) 

    [Alisa Baumbach] => Array 
     (
      [148] => 7 
      [145] => 5 
     ) 

) 

現在我想看看我是否對他們的按鍵之間的用戶陣列之間ATLEAST一個匹配。我會用array_intersect_key做到這一點:

$matches = array_intersect_key($user_cor['John Doe'], $user_cor['Alisa Baumbach']); 

這工作ofcourse,但這些值是硬編碼的,我想這個自動通過它來運行所有組合。我怎麼會去檢查,如果:

  • 用戶1點的數據與用戶2
  • 用戶2的數據與用戶3
  • 用戶1點的數據與用戶3

Ofcourse,這是相交相交相交已經縮小到3比較,而不是6,因爲我刪除了雙打,因爲我只想要獨特的組合。我會如何去做這件事?

我知道這似乎相當典型,除了我有很多措辭上的困難,更別說尋找如何做到這一點的答案。

您的時間將不勝感激,幫助我理解這個問題。

+0

這是一個簡單的foreach'($ myArray的如$用戶=> $ userArrays)'X 2 – cmorrissey

+0

真但我顯然要輸入更多的數據。 –

回答

0

像下面這樣的東西?

$keys = array_keys($user_cor); 
for ($i = 0;$i < count($keys);$i++) { 
    for ($j = $i+1;$j < count($keys);$j++) { 
     $matches[$i.",".$j] = array_intersect_key($user_cor[$keys[$i]], $user_cor[$keys[$j]]) 
    } 
} 
相關問題