我有两个数组
arr1=[1,1,7,2] and arr2=[1,13,2,1]
输出应该像6 1
我需要找到最小的单个正整数元素,它可以添加到任何数组的任何一个元素中以使它们相等。只有当数组中的差异为1时才会出现这种情况。我正在使用条件
进行检查sizeof(array_diff($arr1, $arr2)) == 1
我需要返回可以添加的最小的单个正整数元素以及应该添加的数组。
我是php新手,任何帮助都会很明显。提前谢谢。
答案 0 :(得分:2)
据我了解你的问题,你希望输出是和的差值和数组的否:
$array1 = array(1,1,7,2);
$array2 = array(1,13,2,1);
$sum1 = array_sum($array1);
$sum2 = array_sum($array2);
$result = $sum1 - $sum2;
$difference = abs($sum1 - $sum2);
print_r($difference." ");
if($result<0)
print_r("1");
else
print_r("2");
答案 1 :(得分:0)
你的问题不是很明确,但这是我对你想要的猜测:
$arr1 = [1, 1, 7, 2];
$arr2 = [1, 13, 2, 1];
$arr1Sum = array_sum($arr1);
$arr2Sum = array_sum($arr2);
if ($arr1Sum == $arr2Sum) {
echo "No difference";
} elseif ($arr1Sum < $arr2Sum) {
echo "Add " . ($arr2Sum - $arr1Sum) . " to \$arr1";
} elseif ($arr1Sum > $arr2Sum) {
echo "Add " . ($arr1Sum - $arr2Sum) . " to \$arr2";
}
它只是比较两个数组的总和,如果$arr1
小于$arr2
,那么我们知道我们需要将差异添加到$arr1
。
如果我猜错了,请更新您的问题以澄清。
答案 2 :(得分:0)
您可以对数组进行排序并在foreach循环中对它们进行比较。
$arr1=[1,1,7,2];
$arr2=[1,13,2,1];
Sort($arr1);
Sort($arr2);
Foreach($arr1 as $key => $val){
If($val>$arr2[$key]){
Echo "arr1 key" . $key .": ". ($val-$arr2[$key]). "\n";
}Elseif($arr2[$key]>$val){
Echo "arr2 key" . $key .": ". ($arr2[$key]-$val). "\n";
}Else{
Echo "equal\n";
}
}
不确定您是如何到达6 1
我将其视为6
。