要从一个数组中随机取出若干个不同的数有很多种方法,这里共享两种常用的实现方式,供大家参考。
要从一个数组中随机取出若干个不同的数有很多种方法,这里共享两种常用的实现方式,供大家参考。
方法一:使用 array_rand 函数
array_rand
是 PHP 中的一个内置函数,旨在从数组中随机选取一个或多个键名,返回键名或键名列表:
mixed array_rand ( array $array [, int $num = 1 ] )
其中参数1 $array
表示要从中选取键名的数组,参数2 $num
表示选取的键名数量(默认为1)。
基于此,我们可以将这些键名对应的数组值取出来,组成一个新数组,从而实现随机选取若干个不同元素的目的。
示例代码如下:
<?php
$sourceArr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
$randKeys = array_rand($sourceArr, 3);
$outputArr = array();
foreach ($randKeys as $key) {
$outputArr[] = $sourceArr[$key];
}
print_r($outputArr);
?>
解释一下上面的代码:
-
我们首先定义了一个数组 $sourceArr,存储一个由 1~10 这 10个整数构成的序列。
-
然后调用
array_rand($sourceArr, 3)
,表示从 $sourceArr 数组中取出 3 个键名。 -
$randKeys
变量将返回所选取的 3 个键名。注意,这里$randKeys
是一个整数索引数组。 -
我们通过
foreach
循环遍历 $randKeys 数组,以每个键名为下标,从 $sourceArr 数组中取出对应的元素,存储在 $outputArr 数组中。 -
最后,我们可以通过
print_r($outputArr)
将结果输出到浏览器。
方法二:使用 shuffle 函数
另外一种实现方式是使用 shuffle 函数。此函数支持原地打乱一个数组中的元素排序,从而让每个元素被等概率地随机选择。
示例代码如下:
<?php
$sourceArr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
$outputArr = array();
shuffle($sourceArr);
$count = 3;
for ($i = 0; $i < $count; $i++) {
$outputArr[] = $sourceArr[$i];
}
print_r($outputArr);
?>
解释一下上面的代码:
-
同样地,我们首先定义了一个数组 $sourceArr,存储一个由 1~10 这 10 个整数构成的序列。
-
调用
shuffle($sourceArr)
函数,表示打乱 $sourceArr 数组元素的顺序。 -
接着,我们定义一个循环,用于从 $sourceArr 数组中取出 $count 个元素。在每次循环中,我们依次取到 $sourceArr 数组中前 $count 个元素,存储到 $outputArr 数组中。
-
最后,我们可以通过
print_r($outputArr)
输出结果。
总结来说,从一个数组中随机选取不同元素的实现方式主要有两种:使用 array_rand 函数或使用 shuffle 函数。需要根据具体的场景选择合适的方法。
本文标题为:php 从一个数组中随机的取出若干个不同的数实例
![](/xwassets/images/pre.png)
![](/xwassets/images/next.png)
- PHP判断是否有Get参数的方法 2023-08-04
- 详解Laravel5.6通过路由进行API版本控制的简单方法 2023-03-19
- PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】 2022-10-01
- PHP操作XML的教程详解 2023-06-26
- php将word转换为html格式代码分析 2022-09-02
- php循环table实现一行两列显示的方法 2024-01-12
- PHP实时统计中文字数和区别 2022-12-29
- Laravel基础-关于引入公共文件的两种方式 2023-03-03
- PECL方式安装php-mongodb扩展方法 2022-10-09
- Larvavel实现多字段进行模糊查询、查找方法 2023-08-30