PHP:如果值>如何计算数组10没有循环?

时间:2013-05-25 09:13:33

标签: php arrays

无论如何,如果值>计数数组? 10没有循环(foreach)?

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

5 个答案:

答案 0 :(得分:9)

只需使用array_reduce,您就不需要count

echo array_reduce($arr, function ($a, $b) {
    return ($b > 10) ? ++$a : $a;
}); // returns 4

答案 1 :(得分:2)

$minVal = 10;
$counter = count(
    array_filter(
        $myArray,
        function($value) use ($minVal) {
            return $value > $minVal;
        }
    )
);

答案 2 :(得分: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);

答案 3 :(得分: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);

答案 4 :(得分:0)

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

代码:(Demo

$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之间的true | false评估分别等于1 | 0。