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_Count - Fatal编程技术网

PHP-计算多维数组中第一个元素的唯一值

PHP-计算多维数组中第一个元素的唯一值,php,arrays,count,Php,Arrays,Count,我有这个阵列: Array ( [0] => Array ( [0] => b [1] => d [2] => c [3] =>a [4] => ) [1] => Array ( [0] => c [1] => a [2] => d [3] => [4] => ) [2] => Array ( [0] => b [1] => d [2] => a [3] => [4] => )

我有这个阵列:

Array ( 
[0] => Array ( [0] => b [1] => d [2] => c [3] =>a [4] => ) 

[1] => Array ( [0] => c [1] => a [2] => d [3] => [4] => ) 

[2] => Array ( [0] => b [1] => d [2] => a [3] => [4] => )

[3] => Array ( [0] => a [1] => d [2] => c [3] =>b [4] => )

)
并希望对每个内部数组的第一个元素中的唯一值执行计数。在上面的示例中,一个具有2个b、1个c和1个a

我已经对此进行了测试:

$count = 0;
foreach ($the_outer_array as $key=>$value) {
    if ($value [0] == 'c') {
        $count++;
    }
}
但我一次只能检查一个值。想知道是否有一个外循环,“foreach(范围('a','d')为$i)”?计数完成后,我希望将值存储在数组中(即找到的字母和实例数)

对循环内部循环中第一个元素的唯一值有什么建议吗?再次感谢!

使用并增加计数

$newArray = array();
foreach ($the_outer_array as $key=>$value) {
    $firstValue = $value[0];
    if ($foundKey = array_key_exists($firstValue,$newArray)) {
        $newArray[$firstValue] += 1;
    }
   else{
        $newArray[$firstValue] = 1;
   }
}
在PHP5.5中有+:

例如:

print_r(array_count_values(array_column($array, 0)));
<?php
header('Content-Type: text/plain; charset=utf-8');

$array = [
    [ 'b', 'd', 'c', 'a' ],
    [ 'c', 'a', 'd', 'a' ],
    [ 'c', 'b', 'c', 'a' ]
];

print_r(array_count_values(array_column($array, 0)));
?>
Array
(
    [b] => 1
    [c] => 2
)