2011-10-30 57 views
2

我想要做的是使用PHP解析某些郵件頭中的CC地址,它們以數組形式出現(奇怪的是,即使它只是一個地址)。我想只將數組轉換爲一個長變量。將PHP數組轉換爲單個變量

因此,例如,如果我有以下數組: array([email protected][email protected]);

然後我想將其轉換成一個變量,可能是這樣的 「鮑勃@ example.com,比爾@ example.com」

我已經試過幾件事情,而且我認爲主要的事情應該有工作爲以下幾點:

$ccList[]=$headerinfo->cc; 

foreach($ccList as $key=>$val){ 
    $ccAddress .= $val.","; 
    } 
Sys::log(LOG_ALERT,'CC Address is..'.$ccAddress); 

,但是當我拿到日誌文件它說:「CC的地址是......陣,」

有什麼辦法來完成我想要什麼?我應該注意,作爲它的CC地址,我不會總是知道它的0地址或幾個地址之間的任何地址。

我也嘗試了一些print_r和var_dump的東西,但他們沒有返回我期望看到的結果(電子郵件地址)。我認爲var_dump仍然顯示「數組」(或沒有),print_r只是說「CC地址是... 1」。

任何幫助表示讚賞。

+0

首先使用var_dump檢查$ val var中的內容。無論如何,我沒有看到你如何初始化$ ccAddress var。 –

+0

echo $ key和$ val。確保你有ccList。 – onatm

+0

Key is..0 Val is..Array –

回答

2

http://php.net/manual/en/function.implode.php看看這裏。

$newccAddress = implode(",", $ccAddress); 
+0

當我回顯key/val時,得到: Key is..0 Val is..Array 但是你的命令的輸出是: 「newCC地址外循環是。 。「 –

+0

將implode方法適用於您的案例。 implode可以根據需要製作單個變量,但問題與創建單個變量不同。確保你從$ headerinfo-> cc獲得了什麼; – onatm

+0

是啊,我不明白的是,當我打印$ headerinfo-> cc我得到「數組」,但是當我打印var_dump($ headerinfo-> cc)時,我什麼也沒得到。這個問題被通過函數完成,所以我必須打印到儀表板日誌才能看到結果。不是「數組」的輸出表明它不是空的? –

0

在這個例子中,你可以使用implode(),關閉原因

如果要對一般「轉換PHP數組到一個單一變量」 說,這就是你會想利用看看array_reduce()野獸。