PHP输出包含在邮件变量中的foreach

I want to include the output of a foreach loop + echo $total as the variable $order in my sendmail.php. Can somebody help me? I am a bit stuck.

My sendmail.php:

<?php
if(!isset($_SESSION)) {
     session_start();
}

$to = $_SESSION['email'];
$firstname = $_SESSION['firstname'] ;
$lastname = $_SESSION['lastname'] ;
$email = $_SESSION['email'] ;
$addressline1 = $_SESSION['addressline1'] ;
$towncity = $_SESSION['towncity'] ;
$postcode = $_SESSION['postcode'] ;

foreach ($_SESSION['invoice'] as $value) { //needs to = $order
    echo $value."<br>";} //needs to = $order
echo "Total: $".$_SESSION['total']; //needs to = $order

//set subject
$subject = "Crystal Fusion - New Order";

//body of the e-mail
$body = "New Order Received:




    From: $firstname $lastname

    Email: $email

    Address: $addressline1

    Town/City: $towncity

    Postcode: $postcode

    Order: $order"; //needs to = foreach loop above

$sent = mail($to, $subject, $body);

if($sent)
    {echo "<script language=javascript>window.location = 'mail_succeed.php';</script>";}
else
    {echo "<script language=javascript>window.location = 'mail_fail.php';</script>";}
?>

How about changing your foreach loop to:

$order = '';
foreach ($_SESSION['invoice'] as $value) { //needs to = $order
    echo $value."<br>"; //needs to = $order
    $order .= $value."
";
}
echo "Total: $".$_SESSION['total']; //needs to = $order
$order .= "Total: $".$_SESSION['total'];

The solution would be to use something along the lines of

ob_start(); 

// Add your output
foreach ($_SESSION['invoice'] as $value) { //needs to = $order
    echo $value."<br>";} //needs to = $order
echo "Total: $".$_SESSION['total']; //needs to = $order
// if you need your logic at multiple places, consider using a separate php file and including it here
// ...

$body=ob_get_contents();
ob_end_clean(); 
mail($to, $subject, $body);