首页 > 解决方案 > 从不同类型的数组中获取值

问题描述

我有一个数组

大批
(
    [活动] => 数组
        (
            [0] => 数组
                (
                    [动作] => 打开
                    [时间戳] => 2019-08-02T21:34:03+00:00
                )

            [1] => 数组
                (
                    [动作] => 打开
                    [时间戳] => 2019-08-02T20:27:54+00:00
                )

            [2] => 数组
                (
                    [动作] => 点击
                    [时间戳] => 2019-08-02T20:27:54+00:00
                )

            [3] => 数组
                (
                    [动作] => 打开
                    [时间戳] => 2019-08-02T20:26:43+00:00
                )
    )
)

我想计算具有 action=open 的操作总数。所以结果将是 3

标签: phparrays

解决方案


您可以尝试使用array-columnarray-count-values作为:

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

现在只需将“打开”打印为:

echo $cnts['open'];

你也可以做简单的循环:

$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
}

推荐阅读