在PHP中从包含某些null值的数组中获取最小值。我有一个像这样的数组。
array(10,20,null,60)
由于数组中包含空值,因此php的min
函数返回0作为最小值,但我需要例如10作为最小值。有人可以帮我吗?
使用array_diff()
函数排除null
值,然后使用min()
函数:
$r = array_diff(array(10, 20, null, 60), array(null));
min($r);
false
和null
。证明:https://3v4l.org/EsqRp - undefined尝试
function min($array){
$min = 1000;//max value you expect
for($i=0; $i<sizeof($array); $i++){
if($array[$i] < $min && $array[$i] != null)
$min = $array[$i];
}
return $min;
}
min(array_replace([$defaultValue], array_filter($array)));
array_filter()
函数的默认行为会删除零值。https://3v4l.org/FiWb0 - undefined
min()
函数之前,先过滤数组:$smallest = min(array_filter($array, function ($v) { return !is_null($v); }));
- Amal Muraliarray_filter
函数也会移除零值,我觉得。 - Sergiu Paraschivfalse
的内容,因此请参考 http://php.net/manual/ro/language.types.boolean.php#language.types.boolean.casting。 - Sergiu Paraschiv