PHP中key和current,next的联合运用实例分析


Posted in PHP onMarch 29, 2016

本文实例讲述了PHP中key和current,next的联合运用方法。分享给大家供大家参考,具体如下:

问题:

$arrq = array();
$arrq['tuc'] = array('sss'=>'ewq','shu'=>'sjkah','saa'=>'dwjhaz');
$arrq['tucs'] = array('ssss'=>'ewsq','sQhu'=>dwjhaz','sa12a'=>'dwjQhaz');
$arrq['tuca'] = array('sssd'=>'ewqq','shu2'=>'sjkah','saSa'=>'dwjhhaz');

如何在不破坏数组结构的情况下去除$arrq数组中的重复的值?

思路:先将第一个二维数组中的元素用array_unique函数输出。
输出第二个二维数组中的元素时,自己先用array_unique处理,再去掉在第一个二维数组中已经存在的元素。
输出第三个时,自己先用array_unique处理,再去掉在第一个和第二个二维数组合集中已经存在的元素。
以此类推。

总之,自己先要array_unqiue去重,再去掉自身中在前面所在数组元素合集中存在的元素。

以下为代码:

<?php
$arrq = array();
$arrq['tuc'] = array('sss'=>'ewq','shu'=>'sjkah','saa'=>'dwjhaz');
$arrq['tucs'] = array('ssss'=>'ewsq','sQhu'=>'dwjhaz','sa12a'=>'dwjQhaz');
$arrq['tuca'] = array('sssd'=>'ewqq','shu2'=>'sjkah','saSa'=>'dwjhhaz');
$last=array(); //设置一个空的用来比较的数组
while($arr=current($arrq)) {
  //echo key($arrq);
  $tmp=array_unique($arr); //先清除每个一维数组自身相同的值
  if(count($last)==0) {
    $last=array_merge($last,$arr); //将已经去重的前面的数组合并
  }
  else { // 对其余一维数组进行输出
    //echo key($arrq);
    foreach($arr as $ke=>$va) {
      if(in_array($arr[$ke], $last)) //如果已经存在的元素
      unset($arrq[key($arrq)][$ke]); //删除,此处取得数组元素的KEY值是关键
    }
    $last=array_merge($last,$arr); //将$last变为前面数组的合集,用来进行下次比较
  }
  next($arrq); //指针向后移,这样才能用key函数取得不同的$arrq的下标
}
//以下输出处理后的数组
foreach($arrq as $arr) {
  foreach($arr as $val) {
    echo $val." ";
  }
  echo "<br>";
}
?>

运行结果为:

PHP中key和current,next的联合运用实例分析

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
windows下zendframework项目环境搭建(通过命令行配置)
Dec 06 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
Jul 01 PHP
2014年最新推荐的10款 PHP 开发框架
Aug 01 PHP
windows7下php开发环境搭建图文教程
Jan 06 PHP
php中通过DirectoryIterator删除整个目录的方法
Mar 13 PHP
PHP中的表达式简述
May 29 PHP
PHP Header失效的原因分析及解决方法
Nov 16 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
Jun 30 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 PHP
Bootstrap+PHP实现多图上传功能实例详解
Apr 08 PHP
PDO::beginTransaction讲解
Jan 27 PHP
PHP 图片处理
Sep 16 PHP
CodeIgniter基于Email类发邮件的方法
Mar 29 #PHP
PHP中抽象类、接口的区别与选择分析
Mar 29 #PHP
php实现图片缩略图的方法
Mar 29 #PHP
YII动态模型(动态表名)支持分析
Mar 29 #PHP
Yii操作数据库实现动态获取表名的方法
Mar 29 #PHP
Yii数据库缓存实例分析
Mar 29 #PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
Mar 28 #PHP
You might like
解析PHP工厂模式的好处
2013/06/18 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
2015/12/21 PHP
twig模板常用语句实例小结
2016/02/04 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
php操作redis命令及代码实例大全
2020/11/19 PHP
使两个iframe的高度与内容自适应,且相等
2006/11/20 Javascript
javascript window对象属性整理
2009/10/24 Javascript
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
2011/10/13 Javascript
浅谈Javascript中深复制
2014/12/01 Javascript
JavaScript实现点击文字切换登录窗口的方法
2015/05/11 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
JS+HTML5 FileReader对象用法示例
2017/04/07 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
2017/09/01 Javascript
Js经典案例的实例代码
2018/05/10 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
浅谈KOA2 Restful方式路由初探
2019/03/14 Javascript
vue实现商城秒杀倒计时功能
2019/12/12 Javascript
Python中变量交换的例子
2014/08/25 Python
python的即时标记项目练习笔记
2014/09/18 Python
用tensorflow搭建CNN的方法
2018/03/05 Python
Python迭代器Iterable判断方法解析
2020/03/16 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
美国羽绒床上用品第一品牌:Pacific Coast
2018/08/25 全球购物
介绍一下游标
2012/01/10 面试题
Java如何调用外部Exe程序
2015/07/04 面试题
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
项目建议书
2015/02/04 职场文书
寻找成龙观后感
2015/06/12 职场文书