-6

我需要关于 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));
}
4

2 回答 2

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));
于 2013-05-28T07:55:13.570 回答
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));
}
于 2013-05-28T07:40:02.437 回答