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 相关文章推荐
通过html表格发电子邮件
Oct 09 PHP
针对初学PHP者的疑难问答(1)
Oct 09 PHP
PHP获得用户使用的代理服务器ip即真实ip
Dec 31 PHP
在windows服务器开启php的gd库phpinfo中未发现
Jan 13 PHP
php生成图片缩略图的方法
Apr 07 PHP
PHP获得数组交集与差集的方法
Jun 10 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
Dec 17 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
Jul 03 PHP
PHP实现的文件上传类与用法详解
Jul 05 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
Apr 12 PHP
在laravel框架中实现封装公共方法全局调用
Oct 14 PHP
php文件上传原理与实现方法详解
Dec 20 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
解析thinkphp的左右值无限分类
2013/06/20 PHP
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
jQuery简单实现日历的方法
2015/05/04 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
2018/01/21 Javascript
vue如何在自定义组件中使用v-model
2018/05/14 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
[12:21]VICI vs TNC (BO3)
2018/06/07 DOTA
分析python服务器拒绝服务攻击代码
2014/01/16 Python
python中的代码编码格式转换问题
2015/06/10 Python
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
2019/01/30 Python
在Python函数中输入任意数量参数的实例
2019/07/16 Python
Python Django 添加首页尾页上一页下一页代码实例
2019/08/21 Python
详解Python self 参数
2019/08/30 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
python实现最速下降法
2020/03/24 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
深入解析HTML5中的Blob对象的使用
2015/09/08 HTML / CSS
销售自荐信
2013/10/22 职场文书
《和田的维吾尔》教学反思
2014/04/14 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
村安全生产责任书
2014/08/25 职场文书
开展党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
家庭经济困难证明
2015/06/23 职场文书
电工实训心得体会
2016/01/14 职场文书
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
2021/06/09 Vue.js
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android
如何通过一篇文章了解Python中的生成器
2022/04/02 Python