2014-07-23 84 views
-1

我已經使用implode來分隔數組。我想要的是我的ID應該顯示在用逗號分隔的括號中,但在最後一個字符串後面不會有逗號。如何在括號中顯示最後一個字符串後沒有逗號?使用逗號分隔字符串的Implode數組,但最後一個字符串後沒有逗號

<html> 
    <head> 
    </head> 

    <body> 
     <?php 
     mysql_connect("localhost", "usename", "password") or die(mysql_error()); 
     mysql_select_db("dbname") or die(mysql_error()); 

     $ids=array(); 
     $data = mysql_query("SELECT id FROM information"); 
     while($row = mysql_fetch_assoc($data)) 
     { 
      $ids[]=$row["id"]; 
     } 
     echo implode(", ", $ids); 
     ?> 
    </body> 
</html> 
+0

我認爲它更好地展示一個例子! –

+0

你得到的輸出是什麼? –

+0

但是使用implode,在最後一個字符串之後沒有逗號將被添加 – Khushboo

回答

6
$arr = [1,2,3,4,5,6,7,8,9,10,12,13]; // array(1,2,3,4,5,6,7,8,9,10,12,13); for versions below 5.4 

$str = "(".implode("), (", $arr).")"; 

echo $str; 

結果

(1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (12), (13) 

如果這是你期望的行爲,你只需要添加的開閉架作爲分隔符,這將是它分隔字符串,但會導致缺乏開放和在開始和結束處關閉括號(因爲它在每個元素之後添加膠水,除了最後一個),因此您可以手動添加連接。

這將需要例如121之後將增加(因爲2是最後,它只會增加AFTER 1)定界符), (將導致1), (2,因此增加級聯()導致(1), (2)

+0

+1。理想情況下,這將是創建字符串OP想要的方法。 – Darren

0

只要我正確地跟着你的問題。 你會使用這樣的事情

We're passing variables by reference in this example):

foreach($ids as $i => &$id) { 
    $id = "({$id})"; 
} 

$string = implode(", ", $ids); 

這最終會迴歸這樣的事情:

(56), (74), (88), (100), (91), (61), (43), (47), (77), (2), (78), (61), (44), (6), (74), (90), (14), (86), (80) 

Here is an example注:它只是使用隨機生成id


在回答您的comment

即使字符串,該功能的工作原理。 See this example

+1

這將適合OP的需要,但這是一個矯枉過正的地方,爲了晚報的目的,根據我的說法,這也是一種不好的做法。之後,每次嘗試使用該數組時,都會在每個元素的周圍放置括號 –

+0

@RoyalBg這是一個很好的觀點。我寫了這個答案,假設OP的唯一目的是創建一個字符串,以便向DOM回顯,如他的示例中所示。 – Darren

+0

你的代碼工作在數字,但每當我想帶來簡單的字符串電視exapmle名字我得到的最後一個字符串是這樣的 - 'CNN','AMC','' 有一個額外的逗號加上兩個撇號 – user3815328