What are potential solutions for splitting up newsletter emails in PHP to avoid script timeouts?

Issue: When sending out a large number of newsletter emails in PHP, the script may timeout due to the amount of processing required. One solution is to split up the emails into smaller batches and send them out incrementally to avoid timeouts.

// Splitting up newsletter emails to avoid script timeouts
$newsletter_emails = array("email1@example.com", "email2@example.com", "email3@example.com", /* add more emails here */);

$batch_size = 50; // Number of emails to send in each batch
$total_emails = count($newsletter_emails);

for ($i = 0; $i < $total_emails; $i += $batch_size) {
    $batch_emails = array_slice($newsletter_emails, $i, $batch_size);

    // Send out emails in $batch_emails
    foreach ($batch_emails as $email) {
        // Code to send email
    }
}