PHP——判断数组中是否有重复值并找出重复值

可以用来测试需要唯一凭据号码的,是否有重复值,不过一般直接使用uuid了,简单粗暴就解决问题,这个就简单的测试生成的数据是否有重复值吧

 

<?php

/*
* @Author: wyy
* @Date:   2019-01-09 13:34:16
* @Email:  2752154874@qq.com
* @Last Modified by:   wyy
* @Last Modified time: 2019-01-09 13:48:39
 */

/**
 *   生成抽奖好
 *   @method  build_rand_no
 *   deep
 *   @return  [int]         抽奖号码[description]
 */
function build_rand_no()
{
    @date_default_timezone_set("PRC");

    $order_id_main = rand(1000, 9999);
    //主体长度
    $order_id_len = strlen($order_id_main);
    $order_id_sum = 0;

    for ($i = 0; $i < $order_id_len; $i++) {
        $order_id_sum += (int)(substr($order_id_main, $i, 1));
    }
    //抽奖号码
    $rand_number = $order_id_main . str_pad((100 - $order_id_sum % 100) % 100, 2, '0', STR_PAD_LEFT);
    return $rand_number;
}


//循环指定次数
for ($i=0; $i<100; $i++) {
    $prize[$i] = build_rand_no();
}

//打印数组
var_dump($prize);

//检测是否有重复值
if (count($prize) != count(array_unique($prize))) {
    echo '该数组有重复值';
}

//返回重复值
function fetchArray($array)
{
    // 去重
    $unique_arr = array_unique($array);
    // 比较
    $repeat_arr = array_diff_assoc($array, $unique_arr);
    return $repeat_arr;
}

$list = fetchArray($prize);
var_dump($list);

 

转载于:https://www.cnblogs.com/wangyang0210/p/10243908.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值