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 从一个数组中随机的取出若干个不同的数实例 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • php 数组使用详解 推荐

    标题:PHP数组使用详解 什么是数组 在 PHP 中,数组是一种用来存储多个值的数据结构,在一些情况下它比使用单独的变量来存储多个值更加方便。 数组的定义 定义数组的一般格式如下所示: $array = array( "foo" => "bar", "bar" => "foo&…

    PHP 2023年5月26日
    00
  • php中curl和soap方式请求服务超时问题的解决

    下面是php中curl和soap方式请求服务超时问题的解决攻略。 1. 背景及问题 在PHP中,我们经常会使用curl和soap方式请求外部服务,但是有时候会遇到超时问题,导致请求失败无法得到正确结果。出现超时问题的原因可能有多种,比如: 服务器响应较慢或者网络情况不佳; 请求数据太大,耗时过长; 目标服务器过载等。 在这种情况下,我们需要对curl和soa…

    PHP 2023年5月27日
    00
  • 微信小程序 WebSocket详解及应用

    微信小程序 WebSocket详解及应用 WebSocket是一种在Web应用程序中提供双向通信的协议,它是一种客户端/服务器协议,可以在单个TCP连接上进行全双工通信。在微信小程序中,我们可以使用WebSocket来实现小程序和服务器之间的实时双向通信。 WebSocket基本用法 在小程序中使用WebSocket需要注意以下几点: 前提条件:需要后端提供…

    PHP 2023年5月23日
    00
  • PHP函数篇之掌握ord()与chr()函数应用

    下面我将为大家详细讲解“PHP函数篇之掌握ord()与chr()函数应用”的完整攻略。 一、ord()函数 1. ord()函数的定义 ord()函数用于获取字符串的第一个字符的ASCII值,例如: echo ord(‘a’); // 整数97 echo ord(‘A’); // 整数65 2. ord()函数的用法 格式如下: int ord(string…

    PHP 2023年5月27日
    00
  • PHP实现数据分页显示的简单实例

    下面是“PHP实现数据分页显示的简单实例”的完整攻略: 一、准备工作 1. 确定数据源 需要确定需要分页显示的数据,可以是从数据库中查询得到的数据,也可以是从文件中读取的数据等。 2. 准备页面 需要准备一个能够对数据进行分页显示的页面,并进行必要的样式设计。 3. 设计分页算法 需要设计一个能够将数据进行分页的算法,并能够根据用户的请求显示相应的数据。 二…

    PHP 2023年5月27日
    00
  • PHPCrawl爬虫库实现抓取酷狗歌单的方法示例

    下面是“PHPCrawl爬虫库实现抓取酷狗歌单的方法示例”的完整攻略。 一、PHPCrawl简介 PHPCrawl是一个基于PHP的爬虫库,可以方便地实现Web数据抓取。它具有以下特点: 使用面向对象的方式编写,易于扩展 可以处理JavaScript、Flash等动态信息 支持多线程抓取 具有强大的HTML解析功能 官方文档:http://phpcrawl.…

    PHP 2023年5月27日
    00
  • php访问数组最后一个元素的函数end()用法

    PHP中的数组访问是非常常见的操作,在访问数组中的元素时,可能会需要访问数组最后一个元素,这时候可以使用PHP自带的end()函数。本文将详细讲解end()函数的用法,包括函数参数、返回值和示例说明等。 函数介绍 end()函数是一种用于访问数组最后一个元素的PHP函数,其使用方法如下: end ( array &$array ) : mixed 参…

    PHP 2023年5月26日
    00
  • 详解Window7 下开发php扩展

    以下是详解”Windows7下开发PHP扩展”的完整攻略,该过程包含两条示例说明。 步骤1:安装必须工具 在开始进行PHP扩展开发之前,需要确保你的电脑上安装了以下工具: Visual Studio 2017或以上版本 PHP(预编译DLL文件) PHP开发包(一般来说PHP版本与预编译DLL文件要匹配) 步骤2:下载和解压PHP源码 首先需要从PHP官网上…

    PHP 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部