当前位置: 首页 > news >正文

PHP去除重复的数组数据

PHP去除重复的数组数据
<?php
$input = array("a" => "green","", "red","b" => "green", "","blue", "red","c" => "witer","hello","witer");
//$result = array_unique($input); //去除重复元素
$result = a_array_unique($input);   //只留下单一元素
foreach($result as $aa)
{
echo $aa."<br />";
}
function multi_unique($array) {
   foreach ($array as $k=>$na)
       $new[$k] = serialize($na);
   $uniq = array_unique($new);
   foreach($uniq as $k=>$ser)
       $new1[$k] = unserialize($ser);
   return ($new1);
}

function a_array_unique($array)//写的比较好
{
   $out = array();
   foreach ($array as $key=>$value) {
       if (!in_array($value, $out))
{
           $out[$key] = $value;
       }
   }
   return $out;
} 
?>
 
 
PHP数组去除重复项 有个内置函数array_unique (),但是php的 array_unique函数只适用于一维数组,对多维数组并不适用,以下提供一个二维数组 的 array_unique函数
 
function unique_arr($array2D,$stkeep=false,$ndformat=true)
{
    // 判断是否保留一级数组键 (一级数组键可以为非数字)
    if($stkeep) $stArr = array_keys($array2D);
    // 判断是否保留二级数组键 (所有二级数组键必须相同)
    if($ndformat) $ndArr = array_keys(end($array2D));
    //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
    foreach ($array2D as $v){
        $v = join(",",$v); 
        $temp[] = $v;
    }
    //去掉重复的字符串,也就是重复的一维数组
    $temp = array_unique($temp); 
    //再将拆开的数组重新组装
    foreach ($temp as $k => $v)
    {
        if($stkeep) $k = $stArr[$k];
        if($ndformat)
        {
            $tempArr = explode(",",$v); 
            foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;
        }
        else $output[$k] = explode(",",$v); 
    }
    return $output;
}
 
 
 
演示:
 
$array2D = array('first'=>array('title'=>'1111','date'=>'2222'),'second'=>array('title'=>'1111','date'=>'2222'),'third'=>array('title'=>'2222','date'=>'3333'));  
print_r($array2D);  
print_r(unique_arr($array2D,true)); 
 

  

转载于:https://www.cnblogs.com/already/p/6382954.html

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • java实现对url解析
  • build-essential的作用
  • Java实现在图片上添加水印图片和水印文字
  • POJ2406【KMP-next数组】
  • 大访问量网站的mysql参数设置
  • sizeof判断所占空间大小
  • flex滚动字幕和图片效果
  • 一个IP,一个linux服务器,两个项目,两个域名;如何将两个域名配置到同一个IP的两个项目中。...
  • java生成PDF格式文档
  • VRRP笔记三:配置keepalived为实现haproxy高可用的双主模型配置文件示例:
  • 记一次Arch的安装经历
  • windows xp常用命令集
  • eclipseJVM terminated. Exit code=-1
  • java图片验证码
  • copyEvens
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • Elasticsearch 参考指南(升级前重新索引)
  • Facebook AccountKit 接入的坑点
  • Hibernate【inverse和cascade属性】知识要点
  • JS学习笔记——闭包
  • Mac转Windows的拯救指南
  • rc-form之最单纯情况
  • Vim 折腾记
  • VuePress 静态网站生成
  • vue中实现单选
  • Zepto.js源码学习之二
  • 彻底搞懂浏览器Event-loop
  • 高程读书笔记 第六章 面向对象程序设计
  • 缓存与缓冲
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 理解在java “”i=i++;”所发生的事情
  • 码农张的Bug人生 - 初来乍到
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 面试遇到的一些题
  • 《码出高效》学习笔记与书中错误记录
  • HanLP分词命名实体提取详解
  • # 飞书APP集成平台-数字化落地
  • #Linux(make工具和makefile文件以及makefile语法)
  • (42)STM32——LCD显示屏实验笔记
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (el-Date-Picker)操作(不使用 ts):Element-plus 中 DatePicker 组件的使用及输出想要日期格式需求的解决过程
  • (Java入门)抽象类,接口,内部类
  • (poj1.2.1)1970(筛选法模拟)
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (四)Android布局类型(线性布局LinearLayout)
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (一) springboot详细介绍
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)jQuery 基础
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • .NET Core跨平台微服务学习资源
  • .Net 应用中使用dot trace进行性能诊断
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。