正文
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);