计算二维数组第二层中每个唯一值的出现次数

问题描述 投票:0回答:4

当前阵列:

Array
(
    [12] => Array
        (
            [0] => 1AM
            [1] => 2AM
            [2] => 3AM
            [3] => 4AM
        )

    [13] => Array
        (
            [0] => 1AM
            [1] => 2AM
            [2] => 6AM
            [3] => 4AM
        )

    [14] => Array
        (
            [0] => 1AM
            [1] => 2AM
            [2] => 7AM
            [3] => 4AM
        )

)

所需输出:

3 People Signed Up at 1AM,

3 People signed up at 2AM,

1 Signed up at 3AM

1 Signed up at 6AM

1 Signed up at 7AM

3 Signed up at 4AM

当前代码:

foreach($array as $k => $v) {
    $result[$k] = array_count_values($v);
    arsort($result[$k]);
}
print_r($result);

换句话说,只是计算时间并将其存储在单独的数组或变量中。

php arrays multidimensional-array counting
4个回答
11
投票

您可以简单地将

array_count_values
call_user_func_array
一起使用,如 as

array_count_values(call_user_func_array('array_merge', $array));

0
投票

在 PHP >= 5.6 中,您可以使用参数解包而不是调用 call_user_func_array():

$result = array_count_values(array_merge(...$array));

阅读更多:通过...进行论证解包


-1
投票

这是我认为最好的解决方案

foreach($array as $item) {
    $result[] = count($item);
}
print_r($result);

-1
投票
$counts = array_count_values(array_column($array, 'array_key'));    
© www.soinside.com 2019 - 2024. All rights reserved.