【问题标题】:how to compare the values of 2 arrays with each other in php and output the differences [duplicate]如何在php中比较2个数组的值并输出差异[重复]
【发布时间】:2020-01-20 20:34:46
【问题描述】:

我有 2 个数组,每个数组有 10 个值。

print_r of var $correct answers 给了我这个输出:

Array ( 
[0] => 3 
[1] => 0 
[2] => 2 
[3] => 3 
[4] => 2 
[5] => 2 
[6] => 3 
[7] => 1 
[8] => 3 
[9] => 1 
)

print_r of var $choosen_answers 给了我这个输出:

Array ( 
[0] => 2 // different value
[1] => 0 
[2] => 1 // different value
[3] => 3 
[4] => 2 
[5] => 2 
[6] => 3 
[7] => 1 
[8] => 3 
[9] => 0 // different value
)

数组中的每个值都对应问题的个数,所以

[0] has the value of question 1
[1] has the value of question 2
[2] has the value of question 3
and so on...

我想要实现:将这些数组相互比较,然后给我一个输出,例如:

Number of wrong answers: 3

Wrong answers: Question 1 Question 3 Question 10

我怎样才能做到这一点?

【问题讨论】:

  • 到目前为止你尝试过什么?你被困在哪里了?

标签: php arrays array-difference


【解决方案1】:

尊重上面的答案,但可以更轻松地完成: https://www.php.net/manual/en/function.array-diff-assoc.php

$compare_values = array_diff_assoc($correct_answers, $chosen_answers) ; // compare each value of the 2 arrays with each other                       
echo 'Wrong answers: '.count($compare_values).'<br />';
echo 'Wrong questions:<br />';
foreach($compare_values as $key => $value) {
    echo 'Question: '.($key + 1).'<br />'; // + 1 because question 0 does not exist
}



【讨论】:

    【解决方案2】:
    function get_wrong_answers($correct_answers, $chosen_answers) {
       // For all given answers, 
       foreach( $chosen_answers as $answer_number=>$given_single_answer ) {
           // check if the answer is correct
           if( $correct_answers[$answer_number] === $given_single_answer )
              // If its correct, remove it from the chosen answers
              unset( $chosen_answers[$key] );
       }
       return $chosen_answers;
    }
    
    $wrong_answers = get_wrong_answers($a,$b);
    
    echo 'Number of wrong answers: ' . count( $wrong_answers );
    
    echo 'Wrong answers:';
    
    foreach( $wrong_answers as $answer_number=>$answer ) {
        echo 'Question ' . $answer_number;
    }
    

    【讨论】:

      猜你喜欢
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多