php 从一个数组中随机的取出若干个不同的数实例

要从一个数组中随机取出若干个不同的数有很多种方法,这里共享两种常用的实现方式,供大家参考。

要从一个数组中随机取出若干个不同的数有很多种方法,这里共享两种常用的实现方式,供大家参考。

方法一:使用 array_rand 函数

array_randPHP 中的一个内置函数,旨在从数组中随机选取一个或多个键名,返回键名或键名列表:

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);
?>

解释一下上面的代码:

  1. 我们首先定义了一个数组 $sourceArr,存储一个由 1~10 这 10个整数构成的序列。

  2. 然后调用 array_rand($sourceArr, 3),表示从 $sourceArr 数组中取出 3 个键名。

  3. $randKeys 变量将返回所选取的 3 个键名。注意,这里 $randKeys 是一个整数索引数组。

  4. 我们通过 foreach 循环遍历 $randKeys 数组,以每个键名为下标,从 $sourceArr 数组中取出对应的元素,存储在 $outputArr 数组中。

  5. 最后,我们可以通过 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);
?>

解释一下上面的代码:

  1. 同样地,我们首先定义了一个数组 $sourceArr,存储一个由 1~10 这 10 个整数构成的序列。

  2. 调用 shuffle($sourceArr) 函数,表示打乱 $sourceArr 数组元素的顺序。

  3. 接着,我们定义一个循环,用于从 $sourceArr 数组中取出 $count 个元素。在每次循环中,我们依次取到 $sourceArr 数组中前 $count 个元素,存储到 $outputArr 数组中。

  4. 最后,我们可以通过 print_r($outputArr) 输出结果。

总结来说,从一个数组中随机选取不同元素的实现方式主要有两种:使用 array_rand 函数或使用 shuffle 函数。需要根据具体的场景选择合适的方法。

本文标题为:php 从一个数组中随机的取出若干个不同的数实例

基础教程推荐