PHP数组函数array_unique对二维数组去重复的处理

PHP1313浏览0条评论函数PHP
function unique($data = array()){
        $tmp = array();
        foreach($data as $key => $value){
                //把一维数组键值与键名组合
                foreach($value as $key1 => $value1){
                        $value[$key1] = $key1 . '_|_' . $value1;//_|_分隔符复杂点以免冲突
                }
                $tmp[$key] = implode(',|,', $value);//,|,分隔符复杂点以免冲突
        }
        //对降维后的数组去重复处理
        $tmp = array_unique($tmp);
        //重组二维数组 
        $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
        )
)

非常好使

本文地址:http://wuheng.net/blog_66.html 转载请注明出处

分享到: