doubijiao2094 2019-08-05 05:59
浏览 37
已采纳

从不同类型的数组中获取值

I've an array

Array
(
    [activity] => Array
        (
            [0] => Array
                (
                    [action] => open
                    [timestamp] => 2019-08-02T21:34:03+00:00
                )

            [1] => Array
                (
                    [action] => open
                    [timestamp] => 2019-08-02T20:27:54+00:00
                )

            [2] => Array
                (
                    [action] => click
                    [timestamp] => 2019-08-02T20:27:54+00:00
                )

            [3] => Array
                (
                    [action] => open
                    [timestamp] => 2019-08-02T20:26:43+00:00
                )
    )
)

I want to count the total number of action which has action=open. So the result will be 3

  • 写回答

1条回答 默认 最新

  • dosi8657 2019-08-05 06:03
    关注

    You can try using array-column and array-count-values as:

    $actions = array_column($arr['activity'], 'action');
    $cnts = array_count_values($actions );
    

    Now just print the 'open` as:

    echo $cnts['open'];
    

    You can also do simple loop as:

    $cnt = 0;
    foreach($arr['activity'] as $e) {
        if ($e['action'] == 'open') $cnt++;
        if ($cnt == 1) echo "First open at: " . $e['timestamp']; // print the date of the first open action
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?