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 相关文章推荐
Apache2 httpd.conf 中文版
Nov 17 PHP
PHP 转义使用详解
Jul 15 PHP
php二维数组排序详解
Nov 06 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
Nov 07 PHP
php+xml编程之SimpleXML的应用实例
Jan 24 PHP
Laravel 5 学习笔记
Mar 06 PHP
php通过array_merge()函数合并两个数组的方法
Mar 18 PHP
php遍历树的常用方法汇总
Jun 18 PHP
php简单备份与还原MySql的方法
May 09 PHP
PHP中类的继承和用法实例分析
May 24 PHP
PHP实现文件上传下载实例
Oct 18 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 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 INI配置文件的解析实现分析
2011/01/04 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
2014/08/21 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
jquery select选中的一个小问题
2009/10/11 Javascript
javascript 拖动表格行实现代码
2011/05/05 Javascript
PHP+mysql+Highcharts生成饼状图
2015/05/04 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
vue移动端实现下拉刷新
2018/04/22 Javascript
页面点击小红心js实现代码
2018/05/26 Javascript
最简单的JS实现json转csv的方法
2019/01/10 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
前端vue如何使用高德地图
2020/11/05 Javascript
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
Python实现制度转换(货币,温度,长度)
2019/07/14 Python
浅谈Python 参数与变量
2020/06/20 Python
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
德国高性价比网上药店:medpex
2017/07/09 全球购物
美国环保婴儿用品公司:The Honest Company
2017/11/23 全球购物
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
人事科岗位职责范本
2014/03/02 职场文书
体育教师求职信
2014/06/30 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书