• 逗号分割的字符串去重方法(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 的支持。
  • 相关阅读:
    JQuery高级
    Filter&Listener
    关于用户信息的一个综合案例
    JSP,EL和JSTL
    Cookie和Session
    Request和Response
    Servlet和HTTP请求协议
    Tomcat
    xml
    数组模拟堆
  • 原文地址:https://www.cnblogs.com/cuculus/p/7007715.html
Copyright © 2020-2023  润新知