我需要一个关于值循环的php foreach的帮助,推送到数组并转换为json。
以下代码仅显示最后一个值。 我希望,例如超过显示限制的两封以上的电子邮件。 请帮帮我。
public executeInvite(sfWebRequest $request)
{
$email = $request->getParameter("email");
foreach($email as $e)
{
if($invitationlimit>0)
{
$q = Doctrine_Query::create()
->from ('invitationwp')
->where('email_address = ?', $em);
$this->invitedlist = $q->fetchArray();
$message ="success";
}
else
{
$emails = array();
$count = 0;
$emails[$count++] =$em;
$message = $emails;
}
$invitationlimit--;
}
return $this->renderText(json_encode($message));
}
答案 0 :(得分:2)
您可以执行以下操作。希望它会对你有所帮助。
$emails=array();
$arr=array('abcd@gmail.com','abcde@gmail.com','bcdf@gmail.com');
foreach($arr as $val)
{
$emails[]=$val;
}
print_r($emails);
print_r(json_encode($emails));
答案 1 :(得分:0)
我试图修复你的代码,但这对我没有意义。
你不应该在else语句中创建一个数组,否则每次都会被覆盖。
也许那更好:
public executeInvite(sfWebRequest $request)
{
$emails = array();
$email = $request->getParameter("email");
$count = 0;
foreach($email as $e) {
if($invitationlimit>0) {
$q = Doctrine_Query::create()
->from ('invitationwp')
->where('email_address = ?', $em);
$this->invitedlist = $q->fetchArray();
$message ="success";
}
else
$emails[$count++] = $em;
$invitationlimit--;
}
return $this->renderText(json_encode($emails));
}