Php 比较两个数组的差异 从MySQL查询:
$array1Php 比较两个数组的差异 从MySQL查询:,php,arrays,json,Php,Arrays,Json,$array1 array ( 0 => array ( 'skill' => 56, ), 1 => array ( 'skill' => 10, ), 2 => array ( 'skill' => 76, ), 3 => array ( 'skill' => 77, ), 4 => array ( 'skill' => 57, ), ) $array2 array ( 0 => array ( 'skill' =>
array ( 0 => array ( 'skill' => 56, ), 1 => array ( 'skill' => 10, ), 2 => array ( 'skill' => 76, ), 3 => array ( 'skill' => 77, ), 4 => array ( 'skill' => 57, ), )
$array2
array ( 0 => array ( 'skill' => '56', ), 1 => array ( 'skill' => '10', ), 2 => array ( 'skill' => '76', ), 3 => array ( 'skill' => '77', ), 4 => array ( 'skill' => '13', ), )
我的解决方案(不起作用):
$total\u in\u数组=计数($array1);
$diff=strcmp(json_encode($array1),json_encode($array2))//获得匹配技能
//如果为零,则只显示零
如果($diff<1){
$applicator\u matching\u rate=“0”;
}否则{//做一些数学运算以获得%值
$applicator_matching_sum=($diff/$total_在_数组中)*100);
$applicator\u matching\u rate=($applicator\u matching\u sum-100)*(-1);
}
echo$申请人匹配率;
我想要什么:
我想比较这两个数组的差异,然后将其显示为百分比金额,因此$Array1有5个值,$array2有4个匹配值
这应该显示80%
我是Stackoverflow新手如果我做了错误的事情,请评论并告诉我,以便我可以修复它>
祝你有一个愉快的一天&thx阅读…这是我问题的答案:
<?php
$array1 = array ( 0 => array ( 'skill' => 56, ), 1 => array ( 'skill' => 10, ), 2 => array ( 'skill' => 76, ), 3 => array ( 'skill' => 77, ), 4 => array ( 'skill' => 57, ), );
$array2 = array ( 0 => array ( 'skill' => '56', ), 1 => array ( 'skill' => '10', ), 2 => array ( 'skill' => '76', ), 3 => array ( 'skill' => '77', ), 4 => array ( 'skill' => '13', ), );
$count = count($array1);
$hits = 0;
for($i = 0; $i < $count; $i++) {
if($array1[$i]['skill'] == $array2[$i]['skill']) $hits++;
}
echo 'match: ' . ($hits / $count)*100 . '%';
请var\u export()
为了方便复制,我会这样做。定义“不工作”。错误?意外结果?在我的本地主机上,它给了我80%,但当我上传到我的服务器时,它给了我-280%@El_vanja你需要指定有效数组,比如$array1=[[['skill'=>56],'skill'=>10],'skill'=>76],'skill'=>77],'skill'=>57]
,然后可以使用array_列($array1,'skill')
提取值以便于使用。
<?php
$array1 = array ( 0 => array ( 'skill' => 56, ), 1 => array ( 'skill' => 10, ), 2 => array ( 'skill' => 76, ), 3 => array ( 'skill' => 77, ), 4 => array ( 'skill' => 57, ), );
$array2 = array ( 0 => array ( 'skill' => '56', ), 1 => array ( 'skill' => '10', ), 2 => array ( 'skill' => '76', ), 3 => array ( 'skill' => '77', ), 4 => array ( 'skill' => '13', ), );
$count = count($array1);
$hits = 0;
for($i = 0; $i < $count; $i++) {
if($array1[$i]['skill'] == $array2[$i]['skill']) $hits++;
}
echo 'match: ' . ($hits / $count)*100 . '%';