1. 自己写了一个实现多维数组去重的方法, 只是实现了功能, 至于性能没多管~  可以保留key, 这个方法是针对最终的一维数组元素去重, 如果是多维数组的两个子元素是相同的数组, 是不能去重的
  1. protected function arrayUnique($arr)
  2. {
  3. $new_arr = [];
  4. foreach ($arr as $k=>$v){
  5. if(!is_array($v)){
  6. //一维数组去重
  7. if(!in_array($v, $new_arr)){
  8. $new_arr[$k] = $v;
  9. }
  10. }
  11. //多维数组的情况
  12. if(is_array($v)){
  13. $new_arr[$k] = $this->arrayUnique($v);
  14. }
  15. }
  16. return $new_arr;
  17. }
  1. array_unique 对多维数组去重

    1. $arr[] = ['name', 'age', 'age', 'age', 'name', 'nam']; //二维数组的第一个和第二个元素完全相同, 第三个元素稍有不同, 使用array_unique去重后, 结果是第一个和第三个元素保留
    2. $arr[] = ['name', 'age', 'age', 'age', 'name', 'nam']; //说明array_unique对多维数组去重, 必须是完全相同才会去重,
    3. $arr[] = ['name', 'age', 'age', 'age', 'name', 'end']; //
    4. $res = array_unique($arr, SORT_REGULAR);
    5. print_r($res);
  2. 根据数组值作为新数组的下标来判断是否重复, 进而去重
    1. foreach($result as $k=>$v){
    2. $key = $v['city'].$v['country'];
    3. if(!array_key_exists($key, $res)){
    4. //不存在则添加
    5. $res[$key] = $k;
    6. }else{
    7. //删除result数组中重复的值
    8. unset($result[$k]);
    9. }
    10. foreach($res as $k=>$v){
    11. $new_arr[] = $result[$v];
    12. }
    13. }

PHP多维数组去重的更多相关文章

  1. PHP二维数组去重(指定键名)

    本例对二维数组中某个指定键名进行去重,发现网上大多使用array_unique或是foreach遍历等方式去重,效果不佳且较为繁琐. 本文以二维数组去重为引,介绍array_column函数的三种用法 ...

  2. VB6 二维数组去重实现

    关于VB6的二维数组去重算法实现 当然,这里还是有局限性,当我们的数组被填满了各个不同的值时,例如下方 700*700 = 490000 就要While49万次,这谁受得了? 所以以下仅适合小规模使用 ...

  3. php二维数组去重

    php二维数组去重 前言:php一维数组去重很简单,直接array_unique($arr)即可,但是二维数组去重就得自己去写了 二维数组去重方法: /* * 二维数组去重 * 注意:二维数组中的元素 ...

  4. 如何使用python将二维数组去重呢?

    二维数组的去重,能和一维的方法类似吗?import numpyc=np.array(((1,2),(3,4),(5,6),(7,8),(7,8),(3,4),(1,2)))print('二维数组:\n ...

  5. np.unique()对一维和二维数组去重

    numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None)[source] 一 ...

  6. PHP 二维数组去重(保留各个键值的同时去除重复的项)

    对于如下二维数组,要求对其进行去重: $arr = array( '=>array( 'name'=>'james', , ), '=>array( 'name'=>'susu ...

  7. PHP 二维数组去重方法

    php二维数组的去重策略,如果需要根据某字段去重(其他字段可能不一致),那么需要使用循环策略,如果去重的都是相同的(字段,值),那么可以用序列化方式. $allComments = array_map ...

  8. PHP使用array_unique对二维数组去重处理

    去重,点这里,东西是好东西,就是有点懒.莫见怪

  9. php 一行代码解决二维数组去重

    array_unique($array, SORT_REGULAR);

随机推荐

  1. A<=B的前提下全排列A使答案尽量大

    题意:http://codeforces.com/problemset/problem/915/C 举个例子:假使排好序后a字符串是123456,b是456456,按照上述方法遍历,213456 -& ...

  2. Thinkphp5+Layui上传图片

    ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能 ...

  3. 【kmp】似乎在梦中见过的样子

    参考博客: BZOJ 3620: 似乎在梦中见过的样子 [KMP]似乎在梦中见过的样子 题目描述 「Madoka,不要相信QB!」伴随着Homura的失望地喊叫,Madoka与QB签订了契约. 这是M ...

  4. MySQL 聚合函数(二)Group By的修饰符——ROLLUP

    原文为MySQL 5.7 官方手册:12.20.2 GROUP BY Modifiers 一.ROLLUP 修饰符的意义 GROUP BY子句允许添加WITH ROLLUP修饰符,该修饰符可以对分组后 ...

  5. Vim 添加vimgdb支持

    ./configure --enable-gdb --prefix=/usr --enable-multibyte --enable-fontset --enable-xim --enable-gui ...

  6. 有趣的"=="与"==="

    console.log([]==![]);//true //"=="会进行类型转换,转换成统一类型进行比较 // !符号优于==,[]boolean值为TRUE,所以![]就是FA ...

  7. css改变鼠标指针的形状

    <html> <body> <span style="cursor:auto"> <br /> <span style=&qu ...

  8. Jboss未授权访问部署木马 利用exp

    查看系统名称 java -jar jboss_exploit_fat.jar -i http://www.any.com:8080/invoker/JMXInvokerServlet get jbos ...

  9. RPC、RMI、REST的区别

    初入职场,接触了不少企业常用的技术,与学校实训使用的技术有很大差异,在这里记录一下RPC.RMI与REST的区别. 概念 RPC(Remote Procedure Call,远程过程调用) 一种通过从 ...

  10. Python的Struct模块

    python strtuct模块主要在Python中的值于C语言结构之间的转换.可用于处理存储在文件或网络连接(或其它来源)中的二进制数据. #!/usr/bin/env python # -*- c ...