2012-02-04 225 views
-2

我得到這個錯誤我目前的PHP代碼:如何將字符串數組轉換爲整數數組?

注意:爲ID不是一個整數:1,2,1)APNS :: queueMessage - >

我怎麼能轉換爲一個字符串數組爲一個整數數組,如在這個其他問題:ID not integer... EasyAPNS

基本上,我試圖通過id秒(從我的數據庫)來newMessage()這樣的蘋果例如:

// SEND MESSAGE TO MORE THAN ONE USER 
// $apns->newMessage(array(1,3,4,5,8,15,16)); 
// ($destination contain a string with the Ids like "1,2,3") 

這裏是我下面的代碼:

if (isset($destination)) 
{ 
    //$destination = 1,2,.. 
    $dest = explode(",", $destination); 
    if (isset($time)) 
    { 
     $apns->newMessage($dest, $time); 
    } 
    else 
    { 
     $apns->newMessage($dest); 
    } 

    $apns->addMessageAlert($message); 
    $apns->addMessageBadge($badge); 
    $apns->addMessageSound('bingbong.aiff'); 
    $apns->queueMessage(); 
    header("location:$url/index.php?success=1"); 
} 
+1

什麼?我不明白,這有什麼問題?有什麼問題? – Vyktor 2012-02-04 17:54:52

+1

看起來像'$ apns-> queueMessage()'需要一個整數參數。但有了這些信息,這只是猜測 – knittl 2012-02-04 17:56:32

+0

什麼是你的實際變量設置(包括該行),幷包括錯誤是什麼行。 – Dave 2012-02-04 17:56:37

回答

1

我會創建一個接受數組的封裝函數,然後調用它。

function newMessageArray($array) { 
    foreach ($array as $element) { 
     $apns->newMessage($element); 
    } 
} 

這樣,您就可以撥打newMessageArray()與整數數組,如array(1,2,3,4,5),他們都將被髮送。

另外,您應該將變量名稱(從$array$element)更改爲更有意義的內容。我不知道你在做什麼,所以我不確定要用什麼名字。

+0

非常感謝您的工作!我開始學習PHP,所以它是如此不清楚我的問題是什麼,但你修復它!謝謝! – exomic 2012-02-04 19:06:53

+0

如果它適合你,太棒了!但是......問題的關鍵不是你有一個需要變成「int」的「字符串」數組嗎?根據'apns'文檔評論,$ apns-> newMessage()已經有了一個數組。這只是你有一串字符串...而不是整數...對不對? – summea 2012-02-04 19:18:24

0

你的問題是不清楚,這只是一個猜測工作。 這似乎是在整數轉換錯誤,請嘗試

$dest = explode(",", $destination); 
$destArray = array(); 
foreach($dest as $key => $val) { 
    $destArray[$key] = intval($val); 
} 

if (isset($time)) 
{ 
    $apns->newMessage($destArray, $time); 
} 
else 
{ 
    $apns->newMessage($destArray); 
} 

轉換,其中字符串不是整數使用「INTVAL」。

0

我相信你也可以尋找的是如何做到這一點:

id在你的數據庫表中,對不對?並且您正在嘗試將多個id s放入數組中,以便可以在$apns->newMessage()調用中使用該數組,對吧? (我爲此檢查了the source ...)但是,id s以某種方式來作爲string s而不是int s。

所以,你可能只想確保新的陣列是由int S,這樣的:

function to_int($x) { 
    return (int)$x; 
} 

$dest = array_map("to_int", $dest); 

有這樣,你至少可能是其他方法可以做到這一點,但知道你在這個數組中有int變量。希望有所幫助!

相關問題