使用逗号分隔的字符串进行Implode数组,但在最后一个字符串后没有逗号

时间:2014-07-23 06:19:43

标签: php mysql

我使用implode来分隔数组。我想要的是我的ID应该用逗号分隔,但是在最后一个字符串后面没有逗号。如何在最后一个字符串后面没有逗号的括号中显示它们?

<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>

2 个答案:

答案 0 :(得分:7)

$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)

如果这是您的预期行为,您只需将开始和结束括号添加为分隔符,这将分隔字符串,但会导致开头和结尾缺少开始和结束括号(因为它添加了粘贴每个元素后,除了最后一个元素,所以你手动添加连接。

例如,12会在1之后添加(因为2是最后一个,它只会添加AFTER 1)分隔符), (将生成1), (2,从而在(

中添加连接的)(1), (2)结果

答案 1 :(得分: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