php中多维数组的计数值
你好,我想计算多维数组中的每个键值,我想得到这样的结果php中多维数组的计数值,php,arrays,Php,Arrays,你好,我想计算多维数组中的每个键值,我想得到这样的结果 [Computer] => 1 [mathematics] =>2 [drawing] => 3 我尝试了以下代码 $count = call_user_func_array('array_merge_recursive', $Array); 这是我的数组 Array ( [0] => Array ( [StudentName] => Test 1
[Computer] => 1
[mathematics] =>2
[drawing] => 3
我尝试了以下代码
$count = call_user_func_array('array_merge_recursive', $Array);
这是我的数组
Array
(
[0] => Array
(
[StudentName] => Test 1
[Drawing] => 50.00
[Mathematics] => 40.00
[Computer] =>
)
[1] => Array
(
[StudentName] => Test 2
[Mathematics] =>
[Computer] => 80.00
)
[2] => Array
(
[StudentName] => Test 3
[Drawing] => 80.00
[Mathematics] => 95.00
[Computer] =>
)
这里有一个简单的解决方案。这不是最好的,因为使用php提供的一些数组函数可以减少一些行
$newArr = [];
foreach($Array as $group) {
foreach($group as $key => $value) {
if(!empty($value)) {
$newArr[$key] = isset($newArr[$key]) ? $newArr[$key]+1 : 1;
} else {
if(!isset($newArr[$key])) {
$newArr[$key] = 0;
}
}
}
}
var_dump($newArr);
你试过的代码的结果是?你期望它是什么?@Jeff:我想要每个键的记录数(但该键不应重复),例如['computer']=>1、['Drawing']=>2、['Mathematics']=>3
array\u merge\u recursive
不执行计数,尝试使用该函数一开始就没有意义。“我想要每个键的记录数”-不,你没有,不是根据你指定的结果。您需要这些键下实际存在值的位置的计数。array\u reduce可能是一个更好的匹配函数。检查数组键是否存在不是有点太多了?@Zyigh OP不想知道键是否存在,但如果值不是0,则为null。“-从示例中我可以看出。