首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >删除具有相同数组的数组,以获取php中数组的正确性

删除具有相同数组的数组,以获取php中数组的正确性
EN

Stack Overflow用户
提问于 2018-05-31 16:46:19
回答 1查看 34关注 0票数 0

计算两个数组之间的相似度的问题。我想要比较两个数组。第一个数组是学生输入,第二个是教师输入。例如我的两个数组

第一个数组

代码语言:javascript
复制
Array
(
    [0] => <mo>+</mo><mfrac><mrow>
    [1] => <mo>+</mo><mn>2</mn><mi>x</mi>
    [2] => <mo>+</mo><mn>1</mn></mrow><mrow>
    [3] => <mo>+</mo><mi>x</mi>
    [4] => <mo>+</mo><mn>2</mn></mrow></mfrac>
    [5] => <mo>+</mo><mfrac><mi>x</mi><mn>2</mn></mfrac>
    [6] => <mo>-</mo><mfrac><mrow>
    [7] => <mo>+</mo><mn>2</mn><mi>x</mi></mrow><mi>x</mi></mfrac>
    [8] => <mo>-</mo><mfrac><mrow>
    [9] => <mo>-</mo><mn>3</mn>
    [10] => <mo>-</mo><mn>1</mn></mrow><mi>x</mi></mfrac>
)

第二个数组

代码语言:javascript
复制
Array
(
    [0] => <mo>+</mo><mfrac><mrow>
    [1] => <mo>+</mo><mn>2</mn><mi>x</mi>
    [2] => <mo>+</mo><mn>1</mn></mrow><mrow>
    [3] => <mo>+</mo><mi>x</mi>
    [4] => <mo>+</mo><mn>2</mn></mrow></mfrac>
    [5] => <mo>+</mo><mfrac><mi>x</mi><mn>2</mn></mfrac>
    [6] => <mo>-</mo><mfrac><mrow>
    [7] => <mo>+</mo><mn>2</mn><mi>x</mi></mrow><mi>x</mi></mfrac>
    [8] => <mo>-</mo><mfrac><mrow>
    [9] => <mo>-</mo><mn>3</mn>
    [10] => <mo>-</mo><mn>1</mn></mrow><mi>x</mi></mfrac>
)

我当前的编码

代码语言:javascript
复制
<?php

$total = 0;
$total1 = max(count($final),count($final1));
for ($i=0; $i < count($final) ; $i++) {
    for ($j=0; $j <count($final1) ; $j++) { 
       if ($final[$i]==$final1[$j])
        {
          $total++;
          // unset($final[$i]);
        }
        else 
        {

          // echo $final[$i];
        } 
    }
unset($final[$i]);
} 
$finaltotal = ($total / $total1) * 1;

输出:

代码语言:javascript
复制
your total mark is : 0.54545454545

当我注释unset时,由于2x和-1的重复,总分数是1.1818181818182。我的目标是当从学生到老师的答案匹配时,它将从那个数组中删除它。

我该怎么做呢?我已经尝试了array_diff(),但没有返回总分。

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-31 16:58:17

实际上你可以在这种情况下使用array_diff,它看起来比你想象的要简单:

代码语言:javascript
复制
$studentInput = ['a', 'b', 'c'];
$teacherInput = ['a', 'c', 'c'];

$total = count($studentInput);
$mistake = count(array_diff($studentInput, $teacherInput));
$percentOfMistake = $mistake / $total; //0.33333333333333
$percentOfCorrect = 1 - $percentOfMistake; //0.66666666666667
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50620196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档