doubijiao2094 2019-08-04 21: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-04 22: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
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部