【问题标题】:Counting Values in Multidimensional Array PHP计算多维数组 PHP 中的值
【发布时间】:2016-10-13 19:10:29
【问题描述】:

我知道这个问题已经回答过几次了,但是,没有一个答案适用于我的场景。

当前数组:

    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);

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

【问题讨论】:

  • array_count_values(call_user_func_array('merge', $array));

标签: php arrays multidimensional-array


【解决方案1】:

您可以简单地使用array_count_valuescall_user_func_array 一样

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      阅读更多:Argument unpacking via ...

      【讨论】:

        【解决方案4】:
        $counts = array_count_values(array_column($array, 'array_key'));    
        

        【讨论】:

          猜你喜欢
          • 2021-12-10
          • 2014-10-03
          • 1970-01-01
          • 2012-01-07
          • 2022-01-12
          • 2013-10-26
          • 2012-07-18
          • 1970-01-01
          • 2023-02-06
          相关资源
          最近更新 更多