Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 比较两个数组的差异 从MySQL查询:_Php_Arrays_Json - Fatal编程技术网

Php 比较两个数组的差异 从MySQL查询:

Php 比较两个数组的差异 从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' =>

$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', ), )
我的解决方案(不起作用):

$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 . '%';