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数据库连接类~~做成一个分页类!
Nov 25 PHP
Fatal error: Call to undefined function curl_init()解决方法
Apr 09 PHP
PHP在特殊字符前加斜杠的实现代码
Jul 17 PHP
php日期转时间戳,指定日期转换成时间戳
Jul 17 PHP
php简单的留言板与回复功能具体实现
Feb 19 PHP
PHP中nowdoc和heredoc使用需要注意的一点
Mar 21 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
Nov 24 PHP
经典PHP加密解密函数Authcode()修复版代码
Apr 05 PHP
Thinkphp实现自动验证和自动完成
Dec 19 PHP
Codeigniter里的无刷新上传的实现代码
Apr 14 PHP
PHP操作XML中XPath的应用示例
Jul 04 PHP
PHP单文件上传原理及上传函数的封装操作示例
Sep 02 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错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
PHP中使用CURL获取页面title例子
2015/01/07 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
JS实现双击屏幕滚动效果代码
2015/10/28 Javascript
jQuery UI Bootstrap是什么?
2016/06/17 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
JavaScript模块化之使用requireJS按需加载
2017/04/12 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
Python中查看文件名和文件路径
2017/03/31 Python
python3实现全角和半角字符转换的方法示例
2017/09/21 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
pandas object格式转float64格式的方法
2018/04/10 Python
python退出命令是什么?详解python退出方法
2018/12/10 Python
python统计中文字符数量的两种方法
2019/01/31 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
2019/06/17 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
浅析pandas随机排列与随机抽样
2021/01/22 Python
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
统计系教授推荐信
2014/02/28 职场文书
党员教师工作决心书
2014/03/13 职场文书
政府领导干部个人对照检查材料思想汇报
2014/09/24 职场文书
单位员工收入证明样本
2014/10/09 职场文书
警察正风肃纪剖析材料
2014/10/16 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers