2015-11-07 68 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

相关问题