2015-11-07 72 views
1

假設我有兩個相同大小的數組。 例如:按位置和值在兩個數組之間匹配php

array1 = array(5, 8, 6, 4); 
array2 = array(5, 8, 7, 8); 

,我需要知道他們百分比之間的匹配。 但匹配必須是由位置和價值。 在這個例子中,匹配的有在array[0]array[1]所以我需要獲得50%的比賽。

如果我想將它複雜化了一點,那麼我可以說,如果 array1[2]array2[2]之間的差值小於1(7-6=1),所以金額百分比是52%,因爲6和7幾乎相同。

我需要這個,因爲我想在我的網站2個用戶率的比較用戶可以爲電影評分,我想告訴他們,USER1率有60%的匹配用戶2速率(在同一部電影)。

+0

,則匹配比例應爲'%75',不該」不是嗎?! – someOne

+0

你好 你的權利,但我不想要計算75%,因爲它不完全等於6,7,所以我少加。 – pey22

回答

2

你既可以在陣列和迭代比較每對要素:如果考慮`6`和`7` _almost equal_

function compareArrays($arr1, $arr2, $diffThreshold) { 
    # Assumption: both arrays are the same length. 
    # If this isn't a valid assumption, take the length of the shortest 
    $length = count($arr1); 
    $ctr = 0; 
    for ($i = 0; $i < $length; ++$i) { 
     if (abs($arr1[i] - $arr2[i]) <= $diffThreshold) { 
      ++$ctr; 
     } 
    } 
    return $ctr/$length; 
} 
+0

你好Mureinik這正是我需要非常感謝我的朋友。 – pey22

相關問題