I am saving values with add_user_meta within the same meta key.
What I need is to separate them with commas when getting them with foreach so I can send them by wp_mail.
I need something like this:
1@gmail.com, 2@hotmail.com, 3@gmail.com
but when obtaining them directly, it returns them all together and glued.
some help?
$email = get_user_meta ($vendor_id, 'list_email', false); foreach ($email as $emails) { echo $emails; }
Result:
1@gmail.com2@hotmail.com3@gmail.com
I tried some options, but the comma in front must be from the second email to be readable in wp_mail and I don’t understand how to do it
Advertisement
Answer
You just need to append the “,” in your loop and then remove the last “,” using PHP rtrim() function. This code will do what you want:
$email = ['1@gmail.com', '2@gmail.com', '3@gmail.com', '4@gmail.com']; $output = ''; foreach ( $email as $emails ) { $output .= $emails . ', '; } $output = rtrim( $output, ', ' ); echo $output;
The output:
1@gmail.com, 2@gmail.com, 3@gmail.com, 4@gmail.com
Edit: Thanks Vee for mentioning, there is way simpler solution for this that is Using implode()
function, like this:
$email = ['1@gmail.com', '2@gmail.com', '3@gmail.com', '4@gmail.com']; $output = implode(', ', $email); echo $output;
Result:
1@gmail.com, 2@gmail.com, 3@gmail.com, 4@gmail.com
Tip: Always try to use proper names for your variables, here you should use $emails
for the array of emails and $email
for the single email item.