如何在php中推送值数组?

时间:2013-05-28 07:23:34

标签: php

我需要一个关于值循环的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));
}

2 个答案:

答案 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));
}