簡體   English   中英

帶有逗號分隔字符串但末尾字符串后沒有逗號的Implode數組

[英]Implode array with comma separated string but no comma after last string

我已經使用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>
$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是最后一個,它將僅在1之后添加)定界符), (將得到1), (2 ,因此將級聯的()結果添加到(1), (2)

只要我正確地遵循了您的問題。 你會用這樣的東西

在此示例中,我們通過引用傳遞變量 ):

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)

這是一個示例注意:它僅使用隨機生成的id


回應您的評論

即使使用字符串,此功能也可以使用。 看這個例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM