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


Posted in PHP onJuly 14, 2020

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个人网站架设连环讲(一)
Oct 09 PHP
php中的实现trim函数代码
Mar 19 PHP
IIS6的PHP最佳配置方法
Mar 19 PHP
几个php应用技巧
Mar 27 PHP
PHP截取汉字乱码问题解决方法mb_substr函数的应用
Mar 30 PHP
php学习之数据类型之间的转换代码
May 29 PHP
php excel reader读取excel内容存入数据库实现代码
Dec 06 PHP
php实现单链表的实例代码
Mar 22 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
Aug 20 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
Jun 29 PHP
php可变长参数处理函数详解
Feb 22 PHP
php 使用curl模拟ip和来源进行访问的实现方法
May 02 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
Jul 13 #PHP
通过实例解析PHP数据类型转换方法
Jul 11 #PHP
PHP var关键字相关原理及使用实例解析
Jul 11 #PHP
PHP手机号码及邮箱正则表达式实例解析
Jul 11 #PHP
基于PHP实现短信验证码发送次数限制
Jul 11 #PHP
PHP连接MySQL数据库操作代码实例解析
Jul 11 #PHP
PHP如何使用cURL实现Get和Post请求
Jul 11 #PHP
You might like
php print EOF实现方法
2009/05/21 PHP
PHP生成UTF8文件的方法
2010/05/15 PHP
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
2011/09/20 PHP
PHP 中检查或过滤IP地址的实现代码
2011/11/27 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
js option删除代码集合
2008/11/12 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
[48:45]Ti4 循环赛第二日 NEWBEE vs EG
2014/07/11 DOTA
python基于socket实现网络广播的方法
2015/04/29 Python
python中as用法实例分析
2015/04/30 Python
Python+django实现文件下载
2016/01/17 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
Python装饰器用法示例小结
2018/02/11 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
python如何对链表操作
2020/10/10 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
英语师范专业毕业生自荐信
2013/09/21 职场文书
团队激励口号
2014/06/06 职场文书
分居协议书范本
2014/11/03 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
家属答谢词
2015/01/05 职场文书
董事长助理岗位职责
2015/02/11 职场文书
作息时间调整通知
2015/04/22 职场文书