我试图比较两个不同数组中的字符串,并输出两个数组之间的差异数。我究竟做错了什么?谢谢!
<?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);
答案 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
循环遍历稀疏(即非连续)数组。