首页 > 解决方案 > 计算数组中特定数字的值并返回出现次数

问题描述

我有一个二维数组,如下所示:

$array1 = array
   (
   array(1, "Harry", "Male", 30),
   array(2, "Troy", "Male", 4),
   array(3, "Vicky", "Female", 22),
   );

我想返回第四个“列”超过固定数字 10 的次数

例如,我正在追逐以下内容:

MalesUnder10 = 
MalesOver10 = 
FemalesUnder10 = 
MalesOver10 = 

谢谢,

标签: phparrays

解决方案


您可以使用array_filter来过滤数组。用于count计算结果

$array1 = array (
   array(1, "Harry", "Male", 30),
   array(2, "Troy", "Male", 4),
   array(3, "Vicky", "Female", 22),
);


$MalesUnder10 = count(array_filter( $array1, function( $o ){
    return $o[2] == "Male" && $o[3] < 10;
}));

$MalesOver10 = count(array_filter( $array1, function( $o ){
    return $o[2] == "Male" && $o[3] > 10;
}));

$FemalesUnder10 = count(array_filter( $array1, function( $o ){
    return $o[2] == "Female" && $o[3] < 10;
}));

$FemalesOver10 = count(array_filter( $array1, function( $o ){
    return $o[2] == "Female" && $o[3] > 10;
}));

这将导致:

$MalesUnder10 = 1
$MalesOver10 = 1
$FemalesUnder10 = 0
$FemalesOver10 = 1

注意: 10 岁的人不计算逻辑。您可以通过$o[3] => 10$o[3] =< 10


这是一个现场演示。感谢尼克


推荐阅读