从数组中查找缺失元素的PHP程序

我们必须找到数组中从数组最小值到数组最大值范围内缺少的元素。

null

例如:

Input : arr[] = (1, 2, 3, 4, 6, 7, 8)
Output : 5
The array minimum is 1 and maximum is
8. The missing element in range from
1 to 8 is 5.

Input : arr[] = (10, 11, 14, 15)
Output : 12, 13

这个问题可以通过观察元素之间的连续差异来迭代数组来解决。但是在PHP中,我们可以使用一些内置函数来解决这个问题。

为此,我们必须使用以下两个功能:

  1. range()函数 :此函数用于创建给定范围(从低到高)内任何类型的元素数组,例如整数、字母表,即列表的第一个元素被视为低,最后一个元素被视为高。
  2. 数组_diff()函数 :如果我们有一个元素数组,我们可以通过比较两个数组来找到缺少的元素。

使用两个内置函数来解决这个问题的想法是,首先使用range()函数,使用max()函数从原始数组的起始元素和最大元素创建一个新数组。在此之后,我们应用array_diff()函数来比较新创建的数组和原始数组,从而得到原始数组中所有缺失的元素。

<?php
// PHP code to find missing elements
function not_present( $list )
{
// Create an array with range from array
// minimum to maximum.
$new_array = range(min( $list ), max( $list ));
// Find those elements that are present
// in new_array but not in given list
return array_diff ( $new_array , $list );
}
// Driver code
print_r(not_present( array (1, 2, 3, 4, 7, 8)));
print_r(not_present( array (10, 11, 12, 14, 15, 16)));
?>


输出:

Array
(
    [4] => 5
    [5] => 6
)
Array
(
    [3] => 13
)
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享