PHP中如何在数组中随机抽取n个数据的值 - array_rand()?

PHP中如何在数组中随机抽取n个数据的值?

最佳答案

array_rand() 在你想从数组中取出一个或多个随机的单元时相当有用。它接受 input 作为输入数组和一个可选的参数 num_req,指明了你想取出多少个单元 - 如果没有指定,默认为 1。如果你只取出一个,array_rand() 返回一个随机单元的键名,否则就返回一个包含随机键名的数组。这样你就可以随机从数组中取出键名和值。    

如下例所示:

<?php

$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
print $input[$rand_keys[0]] . "\n";
print $input[$rand_keys[1]] . "\n";

输出:

Trinity
Cypher

 


 

注意

当 num_req 为 1 时,返回非数组数据,而当 num_req >=2 时,返回数组数据,所以,如果取的数量不确定是否为 1 的情况下,建议如下方式统一转换为数组:

$num_req = max(1, $num_req);
$num_req = min($num_req, count($input));
$rand_keys = (array)array_rand($input, $num_req);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`array_rand()` 函数可以用于从数组中随机选择一个或多个键。如果你要从二维数组中随机选择一个键,则需要先随机选择一个子数组,然后再从该子数组中随机选择一个键。下面是一个示例代码: ```php $array = array( array('a', 'b', 'c'), array('d', 'e', 'f'), array('g', 'h', 'i') ); $random_subarray = $array[array_rand($array)]; // 随机选择一个子数组 $random_key = array_rand($random_subarray); // 从子数组中随机选择一个键 echo $random_subarray[$random_key]; // 输出随机选择的 ``` 在上面的示例代码,我们首先定义了一个二维数组 `$array`。然后,我们使用 `array_rand()` 函数从 `$array` 随机选择一个子数组,并将其赋给 `$random_subarray`。接着,我们再次使用 `array_rand()` 函数从 `$random_subarray` 随机选择一个键,并将其赋给 `$random_key`。最后,我们输出随机选择的。 需要注意的是,如果你想从二维数组中随机选择多个键,则可以使用 `array_rand()` 函数的第二个参数来指定要选择的键的数量。例如,如果你要从上面的示例数组中随机选择两个键,则可以使用以下代码: ```php $random_subarray = $array[array_rand($array)]; $random_keys = array_rand($random_subarray, 2); // 从子数组中随机选择两个键 foreach ($random_keys as $random_key) { echo $random_subarray[$random_key] . " "; } ``` 在上面的示例代码,我们使用 `array_rand()` 函数的第二个参数来指定要选择的键的数量为 2。然后,我们使用 `foreach` 循环来遍历 `$random_keys` 数组,并输出随机选择的

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值