若干个不同长度数组同顺序对比得到与原数组不重复的最少数字或组合
时间: 2024-03-08 10:51:30 浏览: 19
您可以使用PHP中的array_merge()函数将多个数组合并,然后再使用array_count_values()函数来统计每个数字(或组合)出现的次数,最后找到只出现一次的最小数字(或组合)。具体实现代码如下:
```
$arr1 = array(1, 2, 3, 4, 5);
$arr2 = array(2, 3, 6, 7, 8);
$arr3 = array(3, 4, 5, 9, 10);
// 合并数组
$mergedArr = array_merge($arr1, $arr2, $arr3);
// 统计每个数字出现的次数
$countArr = array_count_values($mergedArr);
// 找到只出现一次的最小数字
$uniqueArr = array_keys(array_filter($countArr, function($count) {
return $count == 1;
}));
$minUnique = min($uniqueArr);
// 输出结果
echo $minUnique; // 输出1
```
上述代码中,array_merge()函数用于合并多个数组,array_count_values()函数用于统计合并后的数组中每个数字出现的次数,array_filter()函数用于过滤掉出现次数大于1的数字,array_keys()函数用于取出过滤后的数组中的键(即数字),最后用min()函数找到其中的最小值。最后直接输出结果即可。如果没有不同项,则输出空字符串或0。
相关问题
若干个不同长度数组同顺序对比得到与原数组不同的最少数字或组合
您可以使用PHP中的array_diff()函数来找出多个数组中的不同项,并结合count()函数来计算每个数组中的不同项数量,最后选择不同项数量最少的数组作为结果。具体实现代码如下:
```
$arr1 = array(1, 2, 3, 4, 5);
$arr2 = array(2, 3, 6, 7, 8);
$arr3 = array(3, 4, 5, 9, 10);
// 找出不同项并计算数量
$diff1 = count(array_diff($arr1, $arr2, $arr3));
$diff2 = count(array_diff($arr2, $arr1, $arr3));
$diff3 = count(array_diff($arr3, $arr1, $arr2));
// 找出不同项数量最少的数组作为结果
$min_diff = min($diff1, $diff2, $diff3);
if ($min_diff == $diff1) {
$result = $arr1;
} elseif ($min_diff == $diff2) {
$result = $arr2;
} else {
$result = $arr3;
}
// 输出结果
echo implode(',', $result); // 输出1,2,3,4,5
```
上述代码中,array_diff()函数用于找出每个数组中与其他数组不同的数字或组合,然后使用count()函数计算不同项的数量。最后选择不同项数量最少的数组作为结果。如果三个数组中有两个或多个数组不同项数量相等,则选择第一个满足条件的数组作为结果。最后使用implode()函数将数组转换为字符串并输出结果。
若干个不同长度数组同顺序对比得到与原数组不重复的最少顺序数组
您可以使用PHP中的array_unique()函数来去除多个数组中的重复项,并结合array_merge()函数来合并多个数组。具体实现代码如下:
```
$arr1 = array(1, 2, 3, 4, 5);
$arr2 = array(2, 3, 6, 7, 8);
$arr3 = array(3, 4, 5, 9, 10);
// 合并数组并去除重复项
$uniqueArr = array_unique(array_merge($arr1, $arr2, $arr3));
// 输出结果
echo implode(',', $uniqueArr); // 输出1,2,3,4,5,6,7,8,9,10
```
上述代码中,array_merge()函数用于合并多个数组,array_unique()函数用于去除合并后的数组中的重复项。最后使用implode()函数将数组转换为字符串并输出结果。如果没有重复项,则输出原数组。