PHP二维数组去重复项自定义函数
发布:smiling 来源: PHP粉丝网 添加日期:2014-07-08 10:47:09 浏览: 评论:0
如果我们是一维数据去重复项就不要说了有直接的函数了,但二维数据php未提供函数了,下面小编来给大家推荐两个不错的二维数组去重复项自定义函数吧.
例1代码如下:
- function unique_array_2d($array2D,$stkeep=false,$ndformat=true)
- {
- // 判断是否保留一级数组键 (一级数组键可以为非数字)
- if($stkeep) $stArr = array_keys($array2D);
- // 判断是否保留二级数组键 (所有二级数组键必须相同)
- if($ndformat) $ndArr = array_keys(end($array2D));
- //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
- foreach ($array2D as $v){
- $v = join(",",$v);
- $temp[] = $v;
- }
- //去掉重复的字符串,也就是重复的一维数组
- $temp = array_unique($temp);
- //再将拆开的数组重新组装
- foreach ($temp as $k => $v)
- {
- if($stkeep) $k = $stArr[$k];
- if($ndformat)
- {
- $tempArr = explode(",",$v);
- foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;
- }
- else $output[$k] = explode(",",$v);
- }
- return $output;
- }
- $array2D = array(
- 'first'=>array('title'=>'1111','date'=>'2222'),
- 'second'=>array('title'=>'1111','date'=>'2222'),
- 'third'=>array('title'=>'2222','date'=>'3333')
- );
- echo "<pre>";
- print_r(unique_array_2d($array2D,true));
- /**
- * 将二维数组通过指定的 key 去重
- *
- * @param array $arr 要去重的数组
- * @param array $by 指定key去重,该参数不指定将返回 array()
- * @return array
- */
- function array_multunique($arr,$by = array()) {
- $temp = array();
- foreach($arr as $key => $val) {
- foreach($by as $v) {
- $temp[$key] .= isset($val[$v]) ? $val[$v] : '';
- }
- }
- return array_intersect_key($arr,array_unique($temp));
- }
- /*$aa = array (
- array ('id' => 123, 'name' => '张三' ),
- array ('id' => 123, 'name' => '李四' ),
- array ('id' => 124, 'name' => '王五' ),
- array ('id' => 125, 'name' => '赵六' ),
- array ('id' => 126, 'name' => '赵六' )
- );
- $key = 'id';
- array_multunique ($aa, array('id')); */
- function array_remove_key($array,$keys){
- if (!is_array($array) || !is_array($keys)){
- return false;
- }
- foreach($array as $t){
- foreach($keys as $k){
- unset($t[$k]);
- }
- $doc[]=$t;
- }
- return $doc;
- }
- /*$array = array(
- '0' => array('a' => 'aaaaa', 'b' => 'bbbbb', 'c' => array('d' => 'ddddd', 'e' => 'eeeee')),
- '1' => array('a' => 'aaaaa', 'b' => 'bbbbb', 'c' => array('d' => 'ddddd', 'e' => 'eeeee'))
- );
- print_r( array_remove_key($array,array('c')));*/
- function array_remove_key_val(&$a,$b,$c){
- foreach ($a as $key=>$value){
- if ( isset($value[$b]) && ($value[$b]==$c) ){
- unset($a[$key]);
- }
- }
- }
- /*$a=array(
- array('id'=>1,'num'=>10,'type'=>'news'),
- array('id'=>2,'num'=>100,'type'=>'pic')
- );
- print_r( array_remove_key_val($a,"id","1") );*/
例2代码如下:
- /二维数组去掉重复值
- function array_unique_fb($array2D){
- foreach ($array2D as $v){
- $v = join(",",$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
- $temp[] = $v;
- }
- $temp = array_unique($temp); //去掉重复的字符串,也就是重复的一维数组
- foreach ($temp as $k => $v){
- $temp[$k] = explode(",",$v); //再将拆开的数组重新组装
- }
- return $temp;
- }
- //二维数组去掉重复值 并保留键值
- function array_unique_fb($array2D){
- foreach ($array2D as $k=>$v){
- $v = join(",",$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
- $temp[$k] = $v;
- }
- $temp = array_unique($temp); //去掉重复的字符串,也就是重复的一维数组
- foreach ($temp as $k => $v){
- $array=explode(",",$v); //再将拆开的数组重新组装
- $temp2[$k]["id"] =$array[0];
- $temp2[$k]["litpic"] =$array[1];
- $temp2[$k]["title"] =$array[2];
- $temp2[$k]["address"] =$array[3];
- $temp2[$k]["starttime"] =$array[4];
- $temp2[$k]["endtime"] =$array[5];
- $temp2[$k]["classid"] =$array[6];
- $temp2[$k]["ename"] =$array[7];
- }
- return $temp2;
- }
Tags: PHP二维数组 自定义函数
- 上一篇:php json与数组互转支持中文
- 下一篇:php判断多维数组是否存在某个值
相关文章
- ·PHP二维数组怎么按某个字段排序?(2014-07-01)
- ·php二维数组排序后获取最大值(2014-07-14)
- ·PHP二维数组排序问题详解(数组键值排序)(2014-07-15)
- ·php 二维数组的分组排序实现代码(2014-07-21)
- ·PHP二维数组按照一个字段排序程序(2014-07-29)
- ·php二维数组合并与元素值相加实例(2014-08-15)
- ·php二维数组排序与遍历(2014-09-19)
- ·简单的php二维数组多元素排序实例(2015-05-09)
- ·php二维数组多元素排序例子(2016-01-01)
- ·php将一维数组转换为每3个连续值组成的二维数组(2019-07-28)
- ·怎么用PHP实现二维数组按照键值排序(2020-03-30)
- ·php二维数组排序详解(2020-05-16)
- ·php对二维数组按指定键值key排序示例代码(2020-07-06)
- ·php对二维数组进行排序的简单实例(2020-08-11)
- ·一个PHP二维数组排序的函数分享(2020-08-27)
- ·PHP二维数组排序的3种方法和自定义函数分享(2020-11-08)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)