php去掉二维数组中的重复项

    //二维数组去掉重复值
    /*
     *  $array 二维数组
     *  $stkey 一级数组键是否保留(可为非数字) true:保留  false:不保留
	 *  $ndkey 一级数组键是否保留(二级数组键必须相同) true:保留  false:不保留
     */
    function remove_repeat($array, $stkey = false, $ndkey = true)
    {
		//任意string
        $joinstr = ',';
		
        //判断是否保留一级数组
        if ($stkey){
			$stArr = array_keys($array);
        }
		//判断是否保留二级数组
        if ($ndkey) {
			$ndArr = array_keys(end($array));
		}
		
        //降维,也可以用implode(),拼接成字符串,用逗号隔开
        foreach ($array as $v) {
            $v = join($joinstr, $v);
            $temp[] = $v;
        }
		
        //去掉重复的字符串,也就是重复的一维数组
        $temp = array_unique($temp);
		
        //再将拆开的数组重新组装成二维数组
        foreach ($temp as $k => $v) {
            if ($stkey) {
				$k = $stArr[$k];
			}
            if ($ndkey) {
                $tempArr = explode($joinstr, $v);
                foreach ($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;
            } else{ 
				$output[$k] = explode($joinstr, $v);
			}
        }
		//返回去重后的二维数组
        return $output;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值