php去除二维数组的重复项方法
php中去一维数组的重复项可以通过php内置函数array_unique(),但是php的array_unique函数对多维数组并不适用,怎么才能去除二维数组中的重复项呢?
以下给大家提供一个函数。
//二维数组去掉重复值
function unique_arr($array2D,$stkeep=false,$ndformat=true){
$joinstr='+++++';
// 判断是否保留一级数组键 (一级数组键可以为非数字)
if($stkeep) $stArr = array_keys($array2D);
// 判断是否保留二级数组键 (所有二级数组键必须相同)
if($ndformat) $ndArr = array_keys(end($array2D));
//降维,也可以用implode,将一维数组转换为用逗号连接的字符串
foreach ($array2D as $v){
$v = join($joinstr,$v);
$temp[] = $v;
}
//去掉重复的字符串,也就是重复的一维数组
$temp = array_unique($temp);
//再将拆开的数组重新组装
foreach ($temp as $k => $v){
if($stkeep) $k = $stArr[$k];
if($ndformat){
$tempArr = explode($joinstr,$v);
foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;
}
else $output[$k] = explode($joinstr,$v);
}
return $output;
}
希望对大家学习php程序设计有所帮助。
相关推荐
-
PHP中数组合并的两种方法及区别介绍
PHP数组合并两种方法及区别 如果是关联数组,如下: 复制代码 代码如下: $a = array( 'where' => 'uid=1', 'order' => 'uid', ); $b = array( 'where' => 'uid=2', 'order' => 'uid desc', ); 1. array_merge,如果两个数组存在相同的key,后面的一个会覆盖前面的 复制代码 代码如下: <?php $c = array_merge($a, $b); var_ex
-
PHP按指定键值对二维数组进行排序的方法
本文实例讲述了PHP按指定键值对二维数组进行排序的方法.分享给大家供大家参考,具体如下: 问题: 有数组: 复制代码 代码如下: array(0=>array('id'=>1,'price'=>50),1=>array('id'=>2,'price'=>60)); 要求根据数组的price这个字段进行排序. 实现代码如下: <?php $array[] = array('id'=>1,'price'=>50); $array[] = array('id
-
PHP二维数组排序简单实现方法
本文实例讲述了PHP二维数组排序简单实现方法.分享给大家供大家参考,具体如下: function multi_compare($a, $b) { $val_arr = array( 'gold'=>'asc', 'silver'=>'desc'//还可以增加额外的排序条件 ); foreach($val_arr as $key => $val){ if($a[$key] == $b[$key]){ continue; } return (($val == 'desc')?-1:1) *
-
php数组合并与拆分实例分析
本文实例讲述了php数组合并与拆分的方法.分享给大家供大家参考.具体如下: <?php $array1 = array("A","B","C","D"); $array2 = array("1","2","3","4"); $array3 = array("!","@","#",&q
-
php中有关合并某一字段键值相同的数组合并的改进
下面是实现代码: /** **关于参数的说明 **$key键值相同的键名 **$array代表原数组 **$start代表$array[0][$key] **$newkey代表相同键值相同的键名 **/ function combine_same_val($array,$start,$key,$newkey){ static $new; foreach($array as $k=>$v){ if($v[$key]==$start){ $new[$v[$newkey]][] = $v; unset
-
两种php去除二维数组的重复项方法
php去掉二维数组的重复值的方法总结,具体代码如下: 方法一: //二维数组去掉重复值 function array_unique_fb($array2D){ foreach ($array2D as $v){ $v=join(',',$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串 $temp[]=$v; } $temp=array_unique($temp); //去掉重复的字符串,也就是重复的一维数组 foreach ($temp as $k => $v){
-
php二维数组合并及去重复的方法
本文实例讲述了php二维数组合并及去重复的方法.分享给大家供大家参考.具体实现方法如下: $arr = array_merge($labels,$label); //合并需要合并的俩个数组 $key = id;//去重条件 $tmp_arr = array();//声明数组 foreach($arr as $k => $v) { if(in_array($v[$key], $tmp_arr)) //搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true { unset($arr
-
PHP实现一维数组转二维数组的方法
本文实例讲述了PHP实现一维数组转二维数组的方法.分享给大家供大家参考.具体实现方法如下: <?php $asr[1] = array("a","b","c","d"); $asr[2] = array("a","b","c","d"); $asr[3] = array("a","b","c&
-
php中二维数组排序问题方法详解
PHP中二维数组排序,可以使用PHP内置函数uasort() 示例一: 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联 回调函数如下:注意回调函数的返回值是负数或者是false的时候,表示回调函数的第一个参数在前,第二个参数在后排列 $person = array( array('num'=>'001','id'=>6,'name'=>'zhangsan','age'=>21), array('num'=>'001','id'=>7,'name'=>'
-
PHP将二维数组某一个字段相同的数组合并起来的方法
本文实例讲述了PHP将二维数组某一个字段相同的数组合并起来的方法.分享给大家供大家参考,具体如下: 例子: array(3) { [0]=> array(16) { ["id"]=> string(2) "42" ["uid"]=> string(2) "14" ["euid"]=> string(2) "56" ["did"]=> st
-
php数组合并的二种方法
我们首先给出两个数组 复制代码 代码如下: <?php $r = array(1,2,3,4,5,6); $e = array(7,8,9,10); ?> 下面我们用array_merge和加号来何必这两数组 复制代码 代码如下: <?php print_r($r+e); // 输出<span style="font-family: Simsun;font-size:16px; ">Array ( [0] => 1 [1] => 2
随机推荐
- iOS粒子路径移动效果 iOS实现QQ拖动效果
- django实现同一个ip十分钟内只能注册一次的实例
- 浅谈CI脚本异常退出问题定位
- 谈谈Spring 注入properties文件总结
- 利用PHP命令行模式采集股票趋势信息
- python正则表达式去掉数字中的逗号(python正则匹配逗号)
- PHP常见漏洞攻击分析
- AJAX 简介及入门实例
- AJAX 请求区分 $_SERVER['HTTP_X_REQUESTED_WITH'] 小解
- jquery使用淘宝接口跨域查询手机号码归属地实例
- Android中ViewPager的PagerTabStrip与PagerTitleStrip用法实例
- MySql安装与配置方法(MySQL添加用户、删除用户与授权)
- Win2003 64位下ASP无法连接Access数据库的解决方法
- 再谈注册表
- Nginx实现if多重判断配置方法示例
- Android 对话框sweet-alert-dialog
- .NET运行界面上,实现随意拖动控件的方法
- three.js实现3D视野缩放效果
- java编程中拷贝数组的方式及相关问题分析
- 搭建JavaWeb服务器步骤详解
