逗號分割的字符串去重方法(explode,implode)


最近碰到序列化表單提交后獲得數據的ID有重復現象,如下圖:

 

操作CURD前,要去掉重復的ID才行

1 $group_name = json_encode(I('post.')); //解析序列化提交的表單數據
2 preg_match('/"\d.*"/', $group_name, $id); //取數字ID的部分
3 $arr = array('"' => ''); //去掉"號方便框架CURD處理
4 $id = strtr($id[0], $arr); //獲取以,號分割的id字符串
5 $ids = implode(',',array_unique(explode(',',$id))); //去掉重復的ID

 

 在這里用到兩個函數:

1.implode  

定義和用法

implode() 函數返回一個由數組元素組合成的字符串。

注釋:implode() 函數接受兩種參數順序。但是由於歷史原因,explode() 是不行的,您必須保證 separator 參數在 string 參數之前才行。

注釋:implode() 函數的 separator 參數是可選的。但是為了向后兼容,推薦您使用使用兩個參數。

注釋:該函數是二進制安全的。

語法

implode( separator,array)

 

參數 描述
separator 可選。規定數組元素之間放置的內容。默認是 ""(空字符串)。
array 必需。要組合為字符串的數組。
 
1 <?php
2     $arr = array('Hello','World!','Beautiful','Day!');
3     echo implode(" ",$arr);
4 ?>
5 //Hello World! Beautiful Day!

 2.explode

定義和用法

explode() 函數使用一個字符串分割另一個字符串,並返回由字符串組成的數組。

注釋:"separator" 參數不能是一個空字符串。

注釋:該函數是二進制安全的。

 1 <?php
 2     $str = "www.runoob.com";
 3     print_r (explode(".",$str));
 4 ?>
 5    // Array
 6    // (
 7    // [0] => www
 8    //[1] => runoob
 9    // [2] => com
10    // )

 


語法

explode( separator,string,limit)

 

參數 描述
separator 必需。規定在哪里分割字符串。
string 必需。要分割的字符串。
limit 可選。規定所返回的數組元素的數目。

可能的值:

  • 大於 0 - 返回包含最多 limit 個元素的數組
  • 小於 0 - 返回包含除了最后的 -limit 個元素以外的所有元素的數組
  • 0 - 會被當做 1, 返回包含一個元素的數組

技術細節

返回值: 返回字符串數組。
PHP 版本: 4+
更新日志: 在 PHP 4.0.1 中,新增了 limit 參數。在 PHP 5.1.0 中,新增了對負數 limits 的支持。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM