最近碰到序列化表单提交后获得数据的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 | 可选。规定所返回的数组元素的数目。
可能的值:
|
技术细节
返回值: | 返回字符串数组。 |
---|---|
PHP 版本: | 4+ |
更新日志: | 在 PHP 4.0.1 中,新增了 limit 参数。在 PHP 5.1.0 中,新增了对负数 limits 的支持。 |