PHP ---比较数组以输出差异的数量

时间:2017-04-07 01:58:30

标签: php arrays compare

我试图比较两个不同数组中的字符串,并输出两个数组之间的差异数。我究竟做错了什么?谢谢!

<?php
$names = ['Tina', 'Dana', 'Mike', 'Amy', 'Adam'];

$compare = ['Tina', 'Dean', 'Mel', 'Amy', 'Michael'];

function outputDifferences($array1, $array2){

    $pushedArray = [];

    $result = array_diff($array1, $array2);

    // loop through the array
    for($i = 0; $i < count($result[$i]) -1; $i++){

        array_push($pushedArray, $result[$i]);

        $outcome = count($pushedArray);
    }

    return $outcome;
    var_dump($outcome);
}
outputDifferences($names, $compare);

1 个答案:

答案 0 :(得分:0)

您在代码中证明您熟悉count()功能。为什么不用它来返回您正在寻找的号码?

<?php
function outputDifferences($array1, $array2){
    $result = array_diff($array1, $array2);
    return count($result);
}

$names = ['Tina', 'Dana', 'Mike', 'Amy', 'Adam'];    
$compare = ['Tina', 'Dean', 'Mel', 'Amy', 'Michael'];
echo outputDifferences($names, $compare);

至于为什么你的原始代码不起作用,array_diff()的文档说它&#34;返回array1中不存在于任何其他数组中的值&#34;这包括他们的钥匙。在您的示例中,元素0在两个数组中都是相同的,因此没有元素0.您的for循环必然会失败。使用foreach循环遍历稀疏(即非连续)数组。