Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何计算php中两个不同长度数组的相似度百分比_Php_Arrays_Compare_Percentage_Similarity - Fatal编程技术网

如何计算php中两个不同长度数组的相似度百分比

如何计算php中两个不同长度数组的相似度百分比,php,arrays,compare,percentage,similarity,Php,Arrays,Compare,Percentage,Similarity,我分别从两个数组中的数据库中检索了两个用户的记录。这些记录是那些像在推特上一样关注他人的人。 因为两个用户可能跟踪不同数量的人。所以这两个数组的长度是不同的。我创建了一个新的数组来存储普通人(两个用户后面都是人)。 如何获得两个用户的%相似性。假设两个用户有5个共同的追随者,那么他们的相似性比两个用户有2个共同的追随者要大 foreach($common as $row){ //do events echo $row['name']."<br>"; $count_common++;

我分别从两个数组中的数据库中检索了两个用户的记录。这些记录是那些像在推特上一样关注他人的人。 因为两个用户可能跟踪不同数量的人。所以这两个数组的长度是不同的。我创建了一个新的数组来存储普通人(两个用户后面都是人)。 如何获得两个用户的%相似性。假设两个用户有5个共同的追随者,那么他们的相似性比两个用户有2个共同的追随者要大

foreach($common as $row){
//do events
echo $row['name']."<br>";
$count_common++;
}
echo "total common ".$count_common;
$similarity = (count($common)/(count($user1_follows))*100);
foreach($common as$row){
//举办活动
echo$row['name']。“
”; $count_common++; } 回显“共有总额”。$count\u共有; $similarity=(count($common)/(count($user1_))*100);
上面的公式不能计算正确的结果,因为它基于具有相同长度的数组。 这里有一个与我有关的问题

要获得一个号码:

$perc = 2 * count($similar) / (count($p1) + count($p2)); // 0.5714..

感谢您的快速响应,您已经计算了每个数组的相似性百分比。我想要的是在一个常量中找到两个数组的%相似性。例如,UserA与UserB有75%的相似性,UserC与userd有10%的相似性。就像这样。只需平均两个数字。你也可以做平方平均或对数平均。您选择的方法将取决于基本的数学原理。这超出了我的理解。像这样的答案让stackoverflow如此酷:)谢谢@FritsvanCampenBy平均两个数字,你的意思是平均两个百分比吗$p1_perc和$p2_perc?如果你只是简单地做了“($p1_perc+$p2_perc)/2会怎么样?这样行吗
$perc = 2 * count($similar) / (count($p1) + count($p2)); // 0.5714..