首页 > 编程 > PHP > 正文

PHP数组函数array_unique对二维数组的处理

2020-03-22 17:40:53
字体:
来源:转载
供稿:网友
  • 很显然,array_unique官方解释是针对一维数组的,但是很多情况下,我们要对二维数组进行去重复的操作,就想当然的也使用了array_unique函数,但却只返回了二维数组中的第一个数组,很明显二维数组不能用array_unique函数去重复,那么该怎么办呢?1、把二维数组降维,二维数组变一维数组。3、把去重复后的一维数组,恢复成二维数组,同时保留原二维数组中一维数组的键名。下面是二维数组去重复的函数代码:
    function unique($data = array()){        $tmp = array();        foreach($data as $key => $html' target='_blank'>value){                //把一维数组键值与键名组合                foreach($value as $key1 => $value1){                        $value[$key1] = $key1 . '_|_' . $value1;//_|_分隔符复杂点以免冲突                }                $tmp[$key] = implode(',|,', $value);//,|,分隔符复杂点以免冲突        }        //对降维后的数组去重复处理        $tmp = array_unique($tmp);        //重组二维数组  www.it165.net        $newArr = array();        foreach($tmp as $k => $tmp_v){                $tmp_v2 = explode(',|,', $tmp_v);                foreach($tmp_v2 as $k2 => $v2){                        $v2 = explode('_|_', $v2);                        $tmp_v3[$v2[0]] = $v2[1];                }                $newArr[$k] = $tmp_v3;        }        return $newArr;}$data = array(        array('id'=>1, 'title'=>'元芳', 'score'=>10),        array('id'=>2, 'title'=>'元芳,你怎么看', 'score'=>10),        array('id'=>3, 'title'=>'大人说:元芳,你怎么看', 'score'=>9),        array('id'=>1, 'title'=>'元芳', 'score'=>10),);$newArr = unique($data);//去重复后的二维数组Array(    [0] => Array        (            [id] => 1            [title] => 元芳            [score] => 10        )    [1] => Array        (            [id] => 2            [title] => 元芳,你怎么看            [score] => 10        )    [2] => Array        (            [id] => 3            [title] => 大人说:元芳,你怎么看            [score] => 9        ))


    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表