PHP 二维数组去掉重复值并保持原结构

直接上代码,解释很详细

 //二维数组去掉重复值
function arrunique($a){
foreach($a[0] as $k => $v){ //二维数组的内层数组的键值都是一样,循环第一个即可
$ainner[]= $k; //先把二维数组中的内层数组的键值使用一维数组保存
}
foreach ($a as $k => $v){
$v =join("、",$v); //将 值用 顿号连接起来
$temp[$k] =$v;
} $temp =array_unique($temp); //去重
foreach ($temp as $k => $v){
$a = explode(",",$v); //拆分后的重组
$arr_after[$k]= array_combine($ainner,$a); //将原来的键与值重新合并
}
return $a;
}

就是先存下键值,然后使用join降维打击,然后用array_unique方法对一维去重,结果再用explode方法拆分,然后再array_combine方法组合键和值

array_combine()函数使用

php 两个数组合并,一个做键,一个做值

项目中遇到这么个情况,有两个数组: $afloor,$adata;

这两个数组合并为一个新数组:$acombine,使用$afloor中的值,为新数组的键名,$adata中的值为新数组相对应的值.

直接使用PHP array_combine() 函数就行了,array_combine()传入2个参数,array_combine(作为键的数组,作为值的数组)。

比如: $acombine = array_combine($afloor,$adata); 。

PHP 二维数组去掉重复值并保持原结构的更多相关文章

  1. 二维数组去除重复值和array_unique函数

    今天遇到了一个问题,就是从数据库中去除的数组为一个二维数组,现在就是想将二位数组进行去重,但是在php中,对于一个一维数组,我们可以直接使用php的系统函数array_unique,但是这个函数不能对 ...

  2. php二维数组去除重复值

    <?php //二维数组 $test["aa"] = array("id"=>"17","name"=> ...

  3. PHP 按二维数组的键值排序

    /** * 按二维数组的键值排序 * @param unknown $array 二维数组 * @param unknown $key 二维数组的键值 * @param string $order 升 ...

  4. 使用一个for循环将N*N的二维数组的所有值置1

    <?php // 使用一个for循环将N*N的二维数组的所有值置1 $n = ; $a = []; ;$i<$n*$n;$i++){ $a[$i/$n][$i%$n] = ; } prin ...

  5. PHP二维数组按照键值排序

    在开发过程中,我们常常需要对二维数组按照数组的某个键来排序,这里提供两个封装好的方法,可以放到公共函数模块里以后需要的时候直接调用即可. /** * 二维数组按照键值降序排序 * @param arr ...

  6. php如何去掉二维数组中重复的元素?

    $arr=array("=>array("a","b")); 我想得到的结果是:只输出第一项(第一项和第三项相同,去第一项)和第二项这个怎么解决 ...

  7. PHP如何去掉多维数组的重复值

    1.定义函数 function array_unique_new($arr){ $t = array_map('serialize', $arr);//利用serialize()方法将数组转换为以字符 ...

  8. php 二维数组验证一个值是否存在

    php 判断数字在二维数组里 $arr = array( array('a', 'b'), array('c', 'd') ); in_array('a', $arr); // 此时返回的永远都是 f ...

  9. PHP获取二维数组指定字段值的和

    array_sum(array_column($arr, 'num')); //获取二维数组 num字段的和 $arr = [ [ 'device_uid' => '123456', 'num' ...

随机推荐

  1. POJ——T1789 Truck History

    http://poj.org/problem?id=1789 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 27597   ...

  2. 使用excel进行数据挖掘(3)----类别检測

    使用excel进行数据挖掘(3)----类别检測 在配置环境后,能够使用excel进行数据挖掘. 环境配置问题可參阅: http://blog.csdn.net/xinxing__8185/artic ...

  3. map和multimap映射容器

    map容器 map所处理的数据与数据库表具有键值的记录非常相似,在键值与映射数据之间,建立一个数学上的映射关系.map容器的数据结构仍然採用红黑树进行管理.插入的元素键值不同意反复,所使用的结点元素的 ...

  4. mysql字符集修改(ubuntu)

    1.关闭mysql服务 /etc/init.d/mysql start|stop 2.在/etc/mysql/my.cnf,添加下列信息 [client] default-character-set= ...

  5. Android,iOS打开手机QQ与指定用户聊天界面

    在浏览器中能够通过JS代码打开QQ并弹出聊天界面.一般作为客服QQ使用. 而在移动端腾讯貌似没有发布提供相似API,可是却能够使用schema模式来启动手机QQ. 下面为详细代码: Android: ...

  6. Picking up Jewels

    Picking up Jewels There is a maze that has one entrance and one exit.  Jewels are placed in passages ...

  7. Android中文API-ViewStub

    ViewStub控件是一个不可见,0尺寸得惰性控件.当ViewStub控件设置可见,或者调用inflate(),并运行完毕之后,ViewStub所指定的layout资源就会被载入.这个ViewStub ...

  8. 反射 + 配置文件 实现IOC容器

    IOC实现: IOC容器我们只停留在知道上是不行的,我们要动手做印象对更深刻,那么我给大家看一个代码.看看代码中IOC容器的实现. 代码实现: 创建一个类库: 解决方式的类库建立: 创建一个实体类:U ...

  9. php设计模式之桥接模式

    php设计模式之桥接模式 一.概述 桥接模式:将两个原本不相关的类结合在一起,然后利用两个类中的方法和属性,输出一份新的结果. 其实就是讲不相关的东西通过类(本例中是SendInfo)结合在一起,从而 ...

  10. sicily 1137 河床 (二分分治)

    <计算机算法设计与分析>啃书中... 有点看不进书,就来刷个水题吧,刚开始看错题了还. 注意:是所有测量点相差均不大于di而不是相邻两点... //1137.河床 #include < ...