为了账号安全,请及时绑定邮箱和手机立即绑定

PHP:如何替换具有固定大小的数组中的重复数组值

PHP:如何替换具有固定大小的数组中的重复数组值

PHP
皈依舞 2023-08-19 16:56:33
我有一个固定大小为 10 的数组。该数组填充有随机数。我想要的是打印大小为 10 的数组,并过滤掉所有重复项。我使用了 array_unique,但它只是删除重复项,并且不会用新的随机数替换重复值。因此,有时大小是 9 个数字,有时大小是 7 个数字。我希望数组的长度始终为 10 个数字,并且没有重复值。我已经尝试了几个函数(in_array、isset、array_replace、array_merge、array_search),但我不知道如何实现我想要的。我的代码可以检测到存在重复项,但我不知道如何用同样唯一的新随机数替换这些重复项。这是我写的代码:$numbers = Array (rand(10,100), rand(10,100), rand(10,100), rand(10,100), rand(10,100), rand(10,100), rand(10,100), rand(10,100), rand(10,100), rand(10,100));            If (count($numbers) > count(array_unique($numbers)))                {                    Foreach ($numbers As $number)                    {                       $inArray = array_search($number, $numbers);                       If ($inArray === FALSE)                            {                               echo "No duplicate(s) found" ;                            }                       Else                            {                               echo "Duplicate(s) found" ;                            }                    }                                   }            Else                {                      }
查看完整描述

3 回答

?
森林海

TA贡献2011条经验 获得超2个赞

一个简单(但不是最佳)的解决方案是在数组长度不是 10 时不断向数组添加值,并始终删除重复项,这将确保数组有 10 个不同的随机元素。


$array = [];


while (count($array) < 10){

    $array[] = rand(10, 100);

    $array = array_unique($array);

}


print_r($array);


查看完整回答
反对 回复 2023-08-19
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

对于像这样的小数组(100 个数字),您可以生成一个包含 10-100 个元素的数组,然后随机选择。

一条线解决方案:

print_r(array_rand(range(10, 100), 10));


查看完整回答
反对 回复 2023-08-19
?
慕仙森

TA贡献1827条经验 获得超7个赞

也许像这样?


<?php

$numbers = [rand(10,100), rand(10,100), rand(10,100), rand(10,100), rand(10,100), rand(10,100), rand(10,100), rand(10,100), rand(10,100), rand(10,100)];


    foreach ($numbers as $key => $number)

    {

        if (in_array($number,$numbers))

        {

            $numbers[$key] = rand(10,100);

        }


    }



print_r($numbers);

?>


查看完整回答
反对 回复 2023-08-19
  • 3 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信