<?php
$source = [
[
"mail_id" => "29848947",
"last_name" => "Doe",
"first_name" => "Jon",
"email" => "jdoe@gmail.com",
"status" => "opened"
],
[
"mail_id" => "340980398",
"last_name" => "Doe",
"first_name" => "Jane",
"email" => "janedoe@gmail.com",
"status" => "sent"
],
[
"mail_id" => "877586",
"last_name" => "Dwaye",
"first_name" => "Jhon",
"email" => "Jhondw@yahoo.com",
"status" => "clicked"
],
[
"mail_id" => "225253463",
"last_name" => "Doe",
"first_name" => "Jon",
"email" => "jdoe@gmail.com",
"status" => "opened"
],
[
"mail_id" => "849849w4",
"last_name" => "Doe",
"first_name" => "Jane",
"email" => "janedoe@gmail.com",
"status" => "sent"
]
];
$result = array_map(function($email) use($source) {
$events = array_values(array_filter($source, function($event) use($email) {
return $event['email'] == $email;
}));
return [
"first_name" => $events[0]["first_name"],
"last_name" => $events[0]["last_name"],
"email" => $email,
"opened" => count(array_filter($events, function($event) { return $event["status"] == "opened"; })),
"blocked" => count(array_filter($events, function($event) { return $event["status"] == "blocked"; })),
"hard_bounced" => count(array_filter($events, function($event) { return $event["status"] == "hard_bounced"; })),
"soft_bounced" => count(array_filter($events, function($event) { return $event["status"] == "soft_bounced"; })),
"sent" => count(array_filter($events, function($event) { return $event["status"] == "sent"; })),
"clicked" => count(array_filter($events, function($event) { return $event["status"] == "clicked"; })),
];
}, array_unique(array_column($source, "email")));
print_r($result);
- Output for 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
- Array
(
[0] => Array
(
[first_name] => Jon
[last_name] => Doe
[email] => jdoe@gmail.com
[opened] => 2
[blocked] => 0
[hard_bounced] => 0
[soft_bounced] => 0
[sent] => 0
[clicked] => 0
)
[1] => Array
(
[first_name] => Jane
[last_name] => Doe
[email] => janedoe@gmail.com
[opened] => 0
[blocked] => 0
[hard_bounced] => 0
[soft_bounced] => 0
[sent] => 2
[clicked] => 0
)
[2] => Array
(
[first_name] => Jhon
[last_name] => Dwaye
[email] => Jhondw@yahoo.com
[opened] => 0
[blocked] => 0
[hard_bounced] => 0
[soft_bounced] => 0
[sent] => 0
[clicked] => 1
)
)
- Output for 8.3.5
- Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Array
(
[0] => Array
(
[first_name] => Jon
[last_name] => Doe
[email] => jdoe@gmail.com
[opened] => 2
[blocked] => 0
[hard_bounced] => 0
[soft_bounced] => 0
[sent] => 0
[clicked] => 0
)
[1] => Array
(
[first_name] => Jane
[last_name] => Doe
[email] => janedoe@gmail.com
[opened] => 0
[blocked] => 0
[hard_bounced] => 0
[soft_bounced] => 0
[sent] => 2
[clicked] => 0
)
[2] => Array
(
[first_name] => Jhon
[last_name] => Dwaye
[email] => Jhondw@yahoo.com
[opened] => 0
[blocked] => 0
[hard_bounced] => 0
[soft_bounced] => 0
[sent] => 0
[clicked] => 1
)
)
preferences:
140.06 ms | 404 KiB | 153 Q