string连接全局变量

时间:2017-11-13 07:15:02

标签: php string loops

我使用查询从数据库中获取值并使用foreach跟踪变量。我希望使用变量$cc_test附加邮件ID。

最初变量为空。第一次迭代test@sample.com第二次迭代test1@sample.com和第三次test2@sample.com

最后我想获得test@sample.com,test1@sample.com,test2@sample.com,但现在我得到'test2@sample.com,test2@sample.com'。

$cc_check是一个索引数组print_r($cc_test),用于for循环打印test@sample.com代表第一名,test1@sample.com代表第二名,依此类推。

$cc_check=asset_status_tracker::where('request_id','=',$data['id'])->where('status_before','!=',null)->get();
$cc_test=''; //dump requestor mail id
foreach($cc_check as $cc_inner){
    $cc_mail=$cc_inner->changed_by;
    print_r($cc_mail);
    $cc_test=users::where('id','=',$cc_mail)->first()->mail;
    $cc_test=$cc_test.','.$cc_test;
    //print_r($cc_test); 
}
print_r($cc_test); //test@sample.com,test1@sample.com,test2@sample.com

1 个答案:

答案 0 :(得分:1)

如果我理解你,你不需要一个计数器,你只需要用逗号作为粘合剂来连接所有的值。

你可以在没有多余的逗号或迭代条件的情况下通过在循环结束后运行implode()来做到这一点。

将电子邮件保存在数组中,并使数组内部生成一串以逗号分隔的值。

代码:

$emails=[];
foreach($cc_check as $cc_inner){
    $emails[]=users::where('id','=',$cc_inner->changed_by)->first()->mail;
}
$email_string=implode(',',$emails);
echo $email_string;