[英]Find min number by higher order functions using php
我试图找到数组中的最小值,但它不返回最小值,它只适用于最大值。
代码:
function maxNumber($acc, $val) {
return $acc > $val ? $acc : $val;
}
function minNumber($acc, $val) {
return $acc < $val ? $acc : $val;
}
$nums = [5, 12, 1, 50, 2, 180, 90, 45];
echo array_reduce($nums, "maxNumber");
echo "</br>";
echo array_reduce($nums, "minNumber");
结果应该是:180 1
但是 output 是 180
你能解释一下为什么吗?!
您必须先检查 null,然后再设置最小值(如果较小)。
<?php
function maxNumber($acc, $val) {
return $acc > $val ? $acc : $val;
}
function minNumber($min, $val) {
if ((is_numeric($min) && $val < $min) || $min == null) {
$min = $val;
}
return $min;
}
$nums = [5, 12, 1, 50, 2, 180, 90, 45];
echo array_reduce($nums, "maxNumber");
echo "</br>";
echo array_reduce($nums, "minNumber", 0);
您可以为此使用min()
和max()
function:
$nums = [5, 12, 1, 50, 2, 180, 90, 45];
echo min($nums);
echo '#';
echo max($nums);
// output: 1 # 180
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.