6

如果没有循环(foreach)的值> 10,是否有计算数组?

$arr=array(5,7,11,67,4,12,15);
$wanted_output=4
4

5 回答 5

9

直接使用array_reduce就不需要了count

echo array_reduce($arr, function ($a, $b) {
    return ($b > 10) ? ++$a : $a;
}); // returns 4
于 2013-05-25T09:20:09.800 回答
2
$minVal = 10;
$counter = count(
    array_filter(
        $myArray,
        function($value) use ($minVal) {
            return $value > $minVal;
        }
    )
);
于 2013-05-25T09:21:02.450 回答
1

从 PHP7.4 开始,您可以使用array_reduce()with 箭头函数语法并避免使用该use()语法以使函数内部的最小阈值可用。

代码:(演示

$array = [5, 7, 11, 67, 4, 12, 15];
$min = 10;
echo array_reduce($array, fn($carry, $item) => $carry + ($item > $min), 0);
// output: 4

$item和之间的真|假评估$min分别等于1|0。

于 2019-08-23T10:07:13.920 回答
0

尝试使用array_count_values

print_r(array_count_values($my_array));

如果他需要计算小于 10 的值,请尝试

$my_array = array_filter($my_array, function ($n) {
    return $n > 10;
});
echo count($my_array);
于 2013-05-25T09:14:42.897 回答
0

使用 array_count_values:-

$array = array(1, 38, 1, 38,35);
print_r(array_count_values($array));

输出:-

Array
(
    [1] => 2
    [38] => 2
    [35] => 1
)

使用 array_filter:-

$arraycount = array_filter($array, function ($n) {
    return $n > 10;
});
echo count($arraycount);
于 2013-05-25T09:20:37.960 回答