用PHP快速返回不为0的最小整数

在上一篇文章《使用珠算法对PHP数组进行排序》中给大家介绍了通过珠算法对数组进行排序,本文继续给大家介绍一个小知识点~

假设有这样的问题:请你编写一个 PHP 函数,返回不为 0 的最小整数。

大家对这样一个问题,有没有简单的思路啊?

其实大家应该都知道在PHP中有一个内置函数min(),就是用来获取返回一个数组中的最小值,或者几个指定值中的最小值。

那么我们怎么通过创建一个PHP函数来获取返回不为0的最小整数呢?

下面我们来给大家介绍具体的实现步骤:

首先创建一个PHP示例文件demo.php;

然后自定义一个min_values_not_zeroh函数;

完整代码如下:

<?php
function min_values_not_zero(Array $values)
{
    return min(array_diff(array_map('intval', $values), array(0)));
}
print_r(min_values_not_zero(array(-1,0,1,12,-100,1))."
");

这里给了一个示例数组“-1,0,1,12,-100,1”,让我们看看这组数据返回不为0的最小整数是哪个?

结果如下:

f64bfa74a89c41245aa82560d95e847.png

如图,最小整数是-100.

很简单吧。

注:

array_map()函数:为数组的每个元素应用回调函数,返回值是数组,包含 callback 函数处理之后 array (有多个数组时,为 arrays) 对应索引所有元素作为函数的参数。当仅仅传入一个数组时,返回的数组会保留传入参数的键(key)。 传入多个数组时,返回的数组键是按顺序的 integer。

array_diff()函数:用于比较两个(或更多个)数组的值,并返回差集。该函数比较两个(或更多个)数组的值(key=>value 中的 value),并返回一个差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的值。

最后给大家推荐一个咱们平台的最新免费课程《从0开始进入PHP的世界》~快来学习吧!

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 用PHP快速返回不为0的最小整数