将对象添加到数组 - 覆盖而不是添加

时间:2013-08-25 21:08:04

标签: php mysql arrays

我正在努力将联系人列表中的收件人添加到阵列,以便阵列的联系人可以用作邮件中的收件人。我理解阵列足够基本使用,但有一个棘手的问题。我的联系人列表是在列表中动态生成的;

{
$contact = $row['contact'];
echo "<tr>";
echo "<td><font color=#808080><a href='mypagepost.php?contact=$contact' STYLE='TEXT-  DECORATION: NONE'><font color=#808080>" . $row['contact'] . "</a></font></td>";
echo "</tr>";
}

所以,每个联系人都是变量$ contact。当您点击该联系人时,会将您带到mypagepost.php,这会发生这种情况;

$messagerecipient = array();
$contact = $_GET['contact'];
$messagerecipient[] = "$contact";

我可以打印出数组的内容,没问题。但是,每次添加新联系人时,它都会覆盖[0]中的联系人。如果我手动添加带有subsequest $ messagerecipient条目的新联系人,例如;

 $messagerecipient[] = "Confused";
 $messagerecipient[] = "Oh, man";

它增加它们就好了;      数组([0] =&gt; csmith [1] =&gt;困惑[2] =&gt;哦,伙计)

但是当我选择一个新联系人时,[0]总会被覆盖。我想也许我需要把数组放到一个会话中,但它做同样的事情。有人可以推荐一种方法吗?我需要将每个联系人添加到数组中以增加(最终,我将设置一些允许我从数组中删除条目的内容)。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

制作会话变量,说$_SESSION['messagerecipient'];然后使用array_push

将值推送到此变量

Eg: array session variables

答案 1 :(得分:2)

这一行:$messagerecipient = array();每次在添加联系人之前将变量设置为空数组。 $_SESSION这里是正确的想法,但我猜你用$ _SESSION中的一个空数组替换了那一行,这会导致同样的问题。您将要检查是否首先设置了会话变量 - 如果没有,则创建它。这将在您第一次选择收件人时发生;后续时间应该只添加到现有的via $_SESSION['recipient'][] = $contact(或者array_push,如Shadowfax所提到的 - 这些是等效的调用)。否则每次你只是将它重置为空。