在这种情况下如何在数组中输入变量?

时间:2012-03-25 21:08:03

标签: php

    foreach ($result as $user) {
  $replacements[$user['Email']] = array(
    '{FirstName}'=>$user['FirstName'],
    '{LastName}'=>$user['LastName'],
    '{Code}'=>$user['RandomCode']
  );
}

这就是我想要实现的,但是,因为我需要变量而不是固定输入,我需要将其修改为字符串,这里是代码:

try{
$sql =
    'SELECT  *
    FROM     require_attributes
    where ListID=? 
    ';
$stmt = $conn->prepare($sql);
$stmt->execute(array($list));
$tagSet= $stmt->fetchAll();

}
catch(PDOException $e)
    {
    die ($e->getMessage().'<a href="mail/campaign_view.php"> Back</a>'); 
    }




try{
$sql =
    'SELECT  s.*
    FROM     subscriber s ,list_sub ls
    where ls.ListID=? 
    AND ls.SubID=s.SubID
    ';
$stmt = $conn->prepare($sql);
$stmt->execute(array($list));
$resultSub= $stmt->fetchAll();
}
catch(PDOException $e)
    {
    die ($e->getMessage().'<a href="mail/campaign_view.php"> Back</a>'); 
    }


//Put the result in array
foreach ($resultSub as $user) {
  $replacements[$user['Email']] = array(
  foreach ($tagSet as $tags)
  {$string=$string."'".$tags['Attribute']."'"."=>".$user[$tag['Attribute']].",";}
   $string = substr($string, 0, -1);
  echo $string;
  );

第一部分是收集标签,意思是{FirstName},{LastName}等等,标签是灵活的,这意味着没有固定数量的标签, $ user [$ tag ['Attribute']]是我需要收集的值。 我如何检索值并将其放入数组中,就像我想要实现的那样?

目前有错误

Parse error: syntax error, unexpected T_ECHO, expecting ')' in C:\xampp\htdocs\fyp\mail\sendPersonal.php on line 186

谢谢。

1 个答案:

答案 0 :(得分:2)

你的问题是你不能在array()声明中使用foreach(也不是任何类似的东西)。

改为采用这种方式:

//Put the result in array

foreach ($resultSub as $user) {
  $replacements[$user['Email']] = array();
  foreach ($tagSet as $tags)
  {
       $replacements[$user['Email']]['{'.$tags['Attribute'].'}']=$user[$tags['Attribute']];
  }
  echo print_r($replacements[$user['Email']], true);
);