在PHP中使用foreach循环为每个结果分配变量

My current code is as follows

foreach($flowers as $flower){

        echo "Order by: " . $flower->cust_name . "with item: " . $flower->item;    

        // code result above
        // Order by: Anna Witck with item Lily
        // Order by: George Maxwel with item Rose
        // Order by: Catherine Giin with item Aster
        // and so on..
}

But I want it to update it so that each line result have different (two) variable like as follows.

$anna_cust = $flower->cust_name; // result: Anna Witck
$anna_item = $flower->item; // result: Lily
$george_cust = $flower->cust_name; // result: George Maxwel
$george_item = $flower->item; // result: Rose
$catherine_cust = $flower->cust_name; // result: Catherine Giin
$catherine_item = $flower->item; // result: Aster

So if it's an array and not an object, you'd access keys like this:

$name = $flower['cust_name'];

You are trying to show object data like -> symbol but $flower is an array so try the following

<?php
    foreach($flowers as $flower){
        echo "Order by: " . $flower['cust_name'] . "with item: " .$flower['item'];    
    }
?>

Like this

$data = array();
foreach ($flowers as $flower) {
    $name = explode(' ', trim($flower->cust_name));

    // Set varibale name
    $var_cust = strtolower($name[0]) . '_cust' ;
    $var_item = strtolower($name[0]) . '_item' ;

    $data[$var_cust] = $flower->cust_name;
    $data[$var_name] = $flower->item;          
}

Using ${} is a way to create dynamic variables.So Try the following

<?php
foreach($flowers as $flower){
        $cast_name = explode(' ', trim($flower->cust_name));
        ${strtolower($cast_name[0]). '_cust'}=$flower->cust_name;
        ${strtolower($cast_name[0]). '_item'}=$flower->item;        
}
?>