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

 更新时间:2016年03月29日 11:15:32   作者:Fanteathy  
这篇文章主要介绍了PHP中key和current,next的联合运用,结合实例形式分析了key和current,next操作数组元素的相关技巧,需要的朋友可以参考下

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

相关文章

  • PHP实现ASCII码与字符串相互转换的方法

    PHP实现ASCII码与字符串相互转换的方法

    这篇文章主要介绍了PHP实现ASCII码与字符串相互转换的方法,涉及php字符串的遍历、替换、编码转换等相关操作技巧,需要的朋友可以参考下
    2017-04-04
  • CodeIgniter php mvc框架 中国网站

    CodeIgniter php mvc框架 中国网站

    CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为 PHP 程序员建立功能完善的 Web 应用程序。如果你是一个使用共享主机,并且为客户所要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架
    2008-05-05
  • PHP中让json_encode不自动转义斜杠“/”的方法

    PHP中让json_encode不自动转义斜杠“/”的方法

    这篇文章主要给大家分享了PHP中如何让json_encode不自动转义斜杠“/”的两种方法,文中给出了详细的示例代码,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-02-02
  • THINKPHP跨域报错的解决方案

    THINKPHP跨域报错的解决方案

    这篇文章主要介绍了THINKPHP跨域报错has been blocked by CORS policy: Response to preflight request doesn't pass access control check的解决方案,文中通过代码示例给大家介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • thinkphp微信开发(消息加密解密)

    thinkphp微信开发(消息加密解密)

    这篇文章主要介绍了thinkphp微信开发,重点介绍的是安全模式下消息的加密解密,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • php提示Warning:mysql_fetch_array() expects的解决方法

    php提示Warning:mysql_fetch_array() expects的解决方法

    这篇文章主要介绍了php提示Warning:mysql_fetch_array() expects的解决方法,是一个比较典型的php程序错误排查案例,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • php 显示指定路径下的图片

    php 显示指定路径下的图片

    给一个路径,得到她下面的图片,并显示出来的php代码。
    2009-10-10
  • PHP+MySQL删除操作实例

    PHP+MySQL删除操作实例

    这篇文章主要介绍了PHP+MySQL删除操作的方法,实例分析了MySQL删除信息的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解

    PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解

    这篇文章主要介绍了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次),结合实例形式详细分析了php针对二叉树的深度优先遍历与广度优先遍历相关操作技巧与注意事项,需要的朋友可以参考下
    2018-04-04
  • php实现过滤表单提交中html标签的方法

    php实现过滤表单提交中html标签的方法

    这篇文章主要介绍了php实现过滤表单提交中html标签的方法,并以<br/>标签为例演示了过滤的方法,非常实用,需要的朋友可以参考下
    2014-10-10

最新评论