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