首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -比较数组以输出差异的数量

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

Stack Overflow用户
提问于 2017-04-07 09:58:30
回答 1查看 20关注 0票数 0

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

代码语言:javascript
复制
<?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);
EN

回答 1

Stack Overflow用户

发布于 2017-04-07 10:12:57

您将在代码中演示您熟悉count()函数。为什么不直接用它来返回你想要的数字呢?

代码语言:javascript
复制
<?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()的文档说它“返回array1中没有出现在任何其他数组中的值”,其中包括它们的键。在您的示例中,元素0在两个数组中是相同的,因此没有元素0。你的for循环一定会失败。使用foreach循环遍历稀疏(即非连续)数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43268456

复制
相关文章

相似问题

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