0

0

PHP 中生成指定数量、指定范围内的随机数数组(含重复值)

聖光之護

聖光之護

发布时间:2026-02-25 17:42:01

|

530人浏览过

|

来源于php中文网

原创

php 中生成指定数量、指定范围内的随机数数组(含重复值)

本文详解如何在 PHP 中高效生成包含 n 个随机整数的数组,每个数均落在自定义闭区间 [min, max] 内,支持重复值,并推荐使用 mt_rand() 替代过时的 rand()。

本文详解如何在 PHP 中高效生成包含 n 个随机整数的数组,每个数均落在自定义闭区间 [min, max] 内,支持重复值,并推荐使用 `mt_rand()` 替代过时的 `rand()`。

在 PHP 开发中,常需批量生成符合特定范围的随机整数(例如模拟抽样、测试数据填充或游戏逻辑),而非仅获取单个随机值。核心需求是:生成长度为 n 的数组,其中每个元素均为 [z, y] 区间内(含端点)的随机整数,允许重复

实现该目标最简洁、高效且符合现代 PHP 最佳实践的方式,是结合 for 循环与 mt_rand() 函数。mt_rand() 基于 Mersenne Twister 算法,具有更长周期、更高随机质量及更快执行速度,自 PHP 7.2 起已成为 rand() 的默认底层实现,官方明确推荐优先使用。

以下为标准实现代码:

知元AI
知元AI

AI智能语音聊天 对讲问答 AI绘画 AI写作 AI创作助手工具

下载

立即学习PHP免费学习笔记(深入)”;

<?php
// 配置参数:生成数量、最小值、最大值
$n = 65;
$min = 24;
$max = 51;

// 初始化空数组
$randomArray = [];

// 循环生成 n 个随机数并推入数组
for ($i = 0; $i < $n; $i++) {
    $randomArray[] = mt_rand($min, $max);
}

// 输出结果(实际使用中可进行后续处理)
print_r($randomArray);
?>

关键说明

  • 循环从 0 开始($i = 0)至
  • mt_rand($min, $max) 严格保证返回值为 int 类型,且均匀分布在闭区间内(含 $min 和 $max);
  • 允许重复是默认行为,无需额外配置——这正契合题目中“that will repeat”的明确要求;
  • 若需去重(即生成不重复的随机数),则应改用 array_rand(array_flip(range($min, $max)), $n) 或其他集合操作,但本场景不适用。

⚠️ 注意事项

  • 切勿使用已废弃的 rand() 函数(PHP 8.1+ 已弃用),其随机性弱且性能较差;
  • 确保 $min
  • 对于超大数组(如百万级),可考虑使用 array_fill() 预分配 + 引用赋值优化内存局部性,但对常规规模(≤10⁴)无显著收益;
  • 如需加密安全级随机数(如令牌生成),请改用 random_int($min, $max),但其性能低于 mt_rand(),非必要不替换。

综上,该方案以最少代码、最高可读性与最佳实践兼容性,精准满足“生成指定数量、指定范围内、可重复的随机整数数组”这一典型开发需求。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

850

2023.08.02

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

584

2024.08.29

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

294

2025.08.29

C++中int的含义
C++中int的含义

本专题整合了C++中int相关内容,阅读专题下面的文章了解更多详细内容。

210

2025.08.29

页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

474

2023.08.14

batoto漫画官网入口与网页版访问指南
batoto漫画官网入口与网页版访问指南

本专题系统整理batoto漫画官方网站最新可用入口,涵盖最新官网地址、网页版登录页面及防走失访问方式说明,帮助用户快速找到batoto漫画官方平台,稳定在线阅读各类漫画内容。

126

2026.02.25

Steam官网正版入口与注册登录指南_新手快速进入游戏平台方法
Steam官网正版入口与注册登录指南_新手快速进入游戏平台方法

本专题系统整理Steam官网最新可用入口,涵盖网页版登录地址、新用户注册流程、账号登录方法及官方游戏商店访问说明,帮助新手玩家快速进入Steam平台,完成注册登录并管理个人游戏库。

14

2026.02.25

TypeScript全栈项目架构与接口规范设计
TypeScript全栈项目架构与接口规范设计

本专题面向全栈开发者,系统讲解基于 TypeScript 构建前后端统一技术栈的工程化实践。内容涵盖项目分层设计、接口协议规范、类型共享机制、错误码体系设计、接口自动化生成与文档维护方案。通过完整项目示例,帮助开发者构建结构清晰、类型安全、易维护的现代全栈应用架构。

15

2026.02.25

Python数据处理流水线与ETL工程实战
Python数据处理流水线与ETL工程实战

本专题聚焦 Python 在数据工程场景下的实际应用,系统讲解 ETL 流程设计、数据抽取与清洗、批处理与增量处理方案,以及数据质量校验与异常处理机制。通过构建完整的数据处理流水线案例,帮助开发者掌握数据工程中的性能优化思路与工程化规范,为后续数据分析与机器学习提供稳定可靠的数据基础。

1

2026.02.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 12.4万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.3万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号