php
  • mysql
  • arrays
  • 2013-08-25 194 views 0 likes 
    0

    我正在處理將聯繫人列表中的收件人添加到數組的方式,以便可以將該數組的聯繫人用作郵件中的收件人。我理解陣列對於基本的使用來說足夠了,但是有一個令人頭痛的問題我的聯繫人列表是用列表動態生成的。將對象添加到數組中 - 覆蓋而不是添加

    { 
    $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]中的聯繫人。如果我手動添加新的聯繫人與laterst $ messagerecipient條目,如;

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

    它增加它們就好了; Array([0] => csmith [1] => Confused [2] =>哦,人)

    但是當我選擇一個新的聯繫人時,[0]總是被覆蓋。我想也許我需要將數組放入一個會話中,但它也會做同樣的事情。有人可以推薦一種方法來做到這一點?我需要每個添加到數組中的聯繫人增加(最終,我將設置一些東西,這將允許我從數組中刪除條目)。任何幫助表示讚賞。

    +0

    與會議,你實際上是在正確的軌道上,因爲它不覆蓋,它只是增加。在此之前,該數組只是空的,因爲腳本被調用一個新的時間,所以默認情況下所有的變量都是空的(最好:沒有設置)。 – hakre

    回答

    2

    建立一個會話變量,比如$_SESSION['messagerecipient'];然後推值,以此變量,使用array_push

    Eg: array session variables

    +0

    它做同樣的事情。喜歡這個? $ messagerecipient = array(); $ contact = $ _GET ['contact']; $ _SESSION ['recipientlist'] = $ messagerecipient; array_push($ _ SESSION ['recipientlist'],$ contact); array_push($ _ SESSION ['recipientlist'],$ contact); – Kimomaru

    +1

    在應用程序的開始聲明會話變量,而不是一次又一次。這就是值不被追加的原因。你可以發佈你的嘗試會話變量 –

    +0

    $ _SESSION ['recipientlist'] = $ messagerecipient;在我的第二份申請表上處於我的申請的首位。你是說它應該在我的第一個表格上? – Kimomaru

    2

    這條線:$messagerecipient = array();在可變每次加的接觸之前設置爲空數組。 $_SESSION在這裏是正確的想法,但我猜你用一個在$ _SESSION中創建一個空數組的替換行,這會導致同樣的問題。您需要檢查您的會話變量是否先設置 - 如果沒有,則創建它。這將在您第一次選擇收件人時發生;隨後的時間應該僅僅添加到現有的$_SESSION['recipient'][] = $contact(或者是由Shadowfax提到的array_push - 這些是等效的調用)。否則每次你只是將它重置爲空。

    相關問題