Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中多维数组的计数值_Php_Arrays - Fatal编程技术网

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。“-从示例中我可以看出。