• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP基于array_unique实现二维数组去重

    array_unique函数就是可以处重的,它具备了这个功能了,下面我们一来看一个关于PHP使用array_unique对二维数组去重处理例子。

    php 5.2.9 版本增加了array_unique对多维数组的支持,在处理多维数组是需要设置sort_flags参数

    一维数组的重复项:

    使用array_unique函数即可,使用实例如下:

    代码如下

    ?php
    $aa = array("apple", "banana", "pear", "apple", "wail", "watermalon");
    $bb = array_unique($aa);
    print_r($bb);
    ?>

    结果如下:

    Array ( [0] => apple [1] => banana [2] => pear [4] => wail [5] => watermalon )

    二维数组去重项

    代码如下

    例如:

    $result = array(
    0=>array('a'=>1,'b'=>'Hello'),
    1=>array('a'=>1,'b'=>'other'),
    2=>array('a'=>1,'b'=>'other'),
    );

    处理成

    $result = array(
    0=>array('a'=>1,'b'=>'Hello'),
    1=>array('a'=>1,'b'=>'other')
    );

    使用方法

    array_unique($result, SORT_REGULAR);

    二维数组的重复项:

    对于二维数组咱们分两种情况讨论,一种是因为某一键名的值不能重复,删除重复项;另一种因为内部的一维数组不能完全相同,而删除重复项,下面举例说明:

    ㈠因为某一键名的值不能重复,删除重复项

    PHP代码如下

    ?php
    
    function assoc_unique($arr, $key) {
      $tmp_arr = array();
      foreach ($arr as $k => $v) {
        if (in_array($v[$key], $tmp_arr)) {//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true
          unset($arr[$k]);
        } else {
          $tmp_arr[] = $v[$key];
        }
      }
      sort($arr); //sort函数对数组进行排序
      return $arr;
    }
    
    $aa = array(
      array('id' => 123, 'name' => '张三'),
      array('id' => 123, 'name' => '李四'),
      array('id' => 124, 'name' => '王五'),
      array('id' => 125, 'name' => '赵六'),
      array('id' => 126, 'name' => '赵六')
    );
    $key = 'id';
    assoc_unique($aa, $key);
    print_r($aa);
    ?>

    显示结果为:

    Array ( [0] => Array ( [id] => 123 [name] => 张三 ) [1] => Array ( [id] => 124 [name] => 王五 ) [2] => Array ( [id] => 125 [name] => 赵六 ) [3] => Array ( [id] => 126 [name] => 赵六 ) )

    因内部的一维数组不能完全相同,而删除重复项

    代码如下

    ?php
    
    function array_unique_fb($array2D) {
      foreach ($array2D as $v) {
        $v = join(",", $v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
        $temp[] = $v;
      }
      $temp = array_unique($temp);//去掉重复的字符串,也就是重复的一维数组
      foreach ($temp as $k => $v) {
        $temp[$k] = explode(",", $v);//再将拆开的数组重新组装
      }
      return $temp;
    }
    $aa = array(
      array('id' => 123, 'name' => '张三'),
      array('id' => 123, 'name' => '李四'),
      array('id' => 124, 'name' => '王五'),
      array('id' => 123, 'name' => '李四'),
      array('id' => 126, 'name' => '赵六')
    );
    $bb = array_unique_fb($aa);
    print_r($bb)
    ?>

    显示结果:

    Array ( [0] => Array ( [0] => 123 [1] => 张三 ) [1] => Array ( [0] => 123 [1] => 李四 ) [2] => Array ( [0] => 124 [1] => 王五 ) [4] => Array ( [0] => 126 [1] => 赵六 ) )

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • PHP数组实际占用内存大小原理解析
    • PHP数组访问常用方法解析
    • PHP如何使用array_unshift()在数组开头插入元素
    • PHP数组Key强制类型转换实现原理解析
    • PHP读取远程txt文档到数组并实现遍历
    • 如何在PHP中使用数组
    • php中数组最简单的使用方法
    上一篇:关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
    下一篇:PHP array_reverse() 函数原理及实例解析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP基于array_unique实现二维数组去重 PHP,基于,array,unique,实现,