美文网首页
PHP 多维数组去重

PHP 多维数组去重

作者: 江R | 来源:发表于2022-08-31 15:15 被阅读0次

    在网上找到很简洁的实用的方法:
    1、使用“array_map('serialize', $arr)”将多维数组转换为以字符串形式的一维数组。

    2、使用array_unique()去除一维数组中的重复值。

    3、将去重后的一维数组重新转为多维数组。

    实例:

    function array_unique_new($arr) {
        $t = array_map('serialize', $arr);
        //利用serialize()方法将数组转换为以字符串形式的一维数组
        $t = array_unique($t);
        //去掉重复值
        $new_arr = array_map('unserialize', $t);
        //然后将刚组建的一维数组转回为php值
        return $new_arr;
    }
    

    以上就是本次主题的所有内容了,下面是自己跟进PHP可用函数,仿写的一个去重函数可忽略。

    /**
         * 二维数组去重
         * @param array $arr
         * @return array
         */
        private static function arrayUnique ($data=[])
        {
            $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;
        }
    

    相关文章

      网友评论

          本文标题:PHP 多维数组去重

          本文链接:https://www.haomeiwen.com/subject/mhydnrtx.html