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 相关文章推荐
用PHP实现多级树型菜单
Oct 09 PHP
php 遍历数据表数据并列表横向排列的代码
Sep 05 PHP
PHP与MySQL开发的8个技巧小结
Dec 17 PHP
用mysql_fetch_array()获取当前行数据的方法详解
Jun 05 PHP
php命令行用法入门实例教程
Oct 27 PHP
PHP判断网络文件是否存在的方法
Mar 12 PHP
PHP中filter函数校验数据的方法详解
Jul 31 PHP
PHP连接MYSQL数据库实例代码
Jan 20 PHP
总结PHP中DateTime的常用方法
Aug 11 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
PHP设计模式之工厂模式实例总结
Sep 01 PHP
php + WebUploader实现图片批量上传功能
May 06 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
Mysql的常用命令
2006/10/09 PHP
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
PHP中Memcache操作类及用法实例
2014/12/12 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
PHP递归遍历多维数组实现无限分类的方法
2016/05/06 PHP
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
js网页中的(运行代码)功能实现思路
2013/02/04 Javascript
JavaScript的21条基本知识点
2014/03/04 Javascript
JavaScript DOM节点添加示例
2014/07/16 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
jQuery中extend函数的实现原理详解
2015/02/03 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
详解Node.js中的Async和Await函数
2018/02/22 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
Python输出9*9乘法表的方法
2015/05/25 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
2017/06/14 Python
Python冲顶大会 快来答题!
2018/01/17 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
Python基于whois模块简单识别网站域名及所有者的方法
2018/04/23 Python
python在文本开头插入一行的实例
2018/05/02 Python
Python下调用Linux的Shell命令的方法
2018/06/12 Python
pytorch打印网络结构的实例
2019/08/19 Python
python str字符串转uuid实例
2020/03/03 Python
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
Probikekit日本:自行车套件,跑步和铁人三项装备
2017/04/03 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
土木工程实习生自我鉴定
2013/09/19 职场文书
经管应届生求职信范文
2014/05/18 职场文书
公司的门卫岗位职责
2014/09/09 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
法院执行局工作总结
2015/08/11 职场文书