[英]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.