First convert $sent_data
into an associative array:
$sent_assoc = array();
foreach ($sent_data as $el) {
$sent_assoc[$el['newsletter_id']] = $el;
}
Then do the merging:
$default_sent = array('newsletter_sent_count' => null, 'newsletter_sent_date' => null);
foreach ($grid_data as &$el) {
$id = $el['newsletter_id'];
$sent = isset($sent_assoc[$id]) ? $sent_assoc[$id] : $default_sent;
$el = array_merge($el, $sent);
}
The reference &$el
is used so that the assignment updates the original array.
Without the reference the second loop looks like:
foreach ($grid_data as $i => $el) {
$id = $el['newsletter_id'];
$sent = isset($sent_assoc[$id]) ? $sent_assoc[$id] : $default_sent;
$grid_data[$i] = array_merge($el, $sent);
}