PHP函数shuffle()取数组若干个随机元素的方法分析
本文实例讲述了PHP函数shuffle()取数组若干个随机元素的方法。分享给大家供大家参考,具体如下:
有时候我们需要取数组中若干个随机元素(比如做随机推荐功能),那么PHP要如何实现呢?一个比较简单的解决方法是用PHP自带的shuffle()函数。下面举一个简单的例子:
$data[] = array( "name" => "我们", "rank" => "40" ); $data[] = array( "name" => "博客园", "rank" => "50" ); $data[] = array( "name" => "CSDN", "rank" => "60" ); $data[] = array( "name" => "ITEYE", "rank" => "50" ); shuffle($data); $i = 0; foreach($data as $key =>$value ){ if($i < 2) { echo $data[$key]['name'].'<br />'; } $i++; }
shuffle()
shuffle() 函数把数组中的元素按随机顺序重新排列。若成功,则返回 TRUE,否则返回 FALSE。本函数为数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
如果传入的是关联数组,你会发现关联数组的键名将丢失。顺便这里说一下解决方法:
// 打乱关联数组的排序 function shuffle_assoc($array) { $randomized_keys = array_rand($array, count($array)); foreach($randomized_keys as $current_key) { $output[$current_key] = $array[$current_key]; } return $output; }
另外,php还提供了从数组中随机抽取值的函数:array_rand(),其调用格式如下:array_rand(数组,抽取元素的个数); 当然要实现对二维数组的支持还需要封装一下才能使用。但前面的程序就很好支持二维数组。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
相关推荐
-
php 利用array_slice函数获取随机数组或前几条数据
先给大家说下基本语法: array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys ]] ) array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列. 如果 offset 非负,则序列将从 array 中的此偏移量开始.如果 offset 为负,则序列将从 array 中距离末端这么远的地方开始. 如果给出了 length 并且为正,则序列中
-
php使用gettimeofday函数返回当前时间并存放在关联数组里
本文实例讲述了php使用gettimeofday函数返回当前时间并存放在关联数组里的方法.分享给大家供大家参考.具体分析如下: 英文官方描述如下: Key Description sec Seconds since midnight before January 1, 1970 usec Microseconds since the sec value minuteswest Local time zone difference from GMT, in minutes dsttime
-
PHP使用in_array函数检查数组中是否存在某个值
本文实例讲述了PHP使用in_array函数检查数组中是否存在某个值的方法.分享给大家供大家参考.具体分析如下: PHP使用in_array()函数检查数组中是否存在某个值,如果存在则返回 TRUE ,否则返回 FALSE了,非常的好用,下面我深入来为各位介绍in_array() 函数. 最近在用php写一段代码时,要用到判断某值是否在另外一组值中.而in_array 函数就是用来检查数组中是否存在某个值 .直接通过概念理解比较模糊,可以通过具体例子了解其作用. 语法如下: bool in_ar
-
PHP数组和explode函数示例总结
PHP数组和explode函数应用实例,供大家学习参考. 例1: <?php $province = array("北京","上海","天津","重庆","河北","山西","内蒙古","辽宁","吉林","黑龙江","江苏","浙江","安徽"
-
JavaScript中实现PHP的打乱数组函数shuffle实例
PHP 里面有个非常方便的打乱数组的函数 shuffle() ,这个功能在许多情况下都会用到,但 javascript 的数组却没有这个方法,没有不要紧,可以扩展一个,自己动手,丰衣足食嘛. 请刷新页面查看随机排序效果. 复制代码 代码如下: <script type="text/javascript"> //<![CDATA[ // 说明:为 Javascript 数组添加 shuffle 方法 var shuffle = function(v){ fo
-
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
shuffle()定义和用法 shuffle() 函数把数组中的元素按随机顺序重新排列. 若成功,则返回 TRUE,否则返回 FALSE. 注释:本函数为数组中的单元赋予新的键名.这将删除原有的键名而不仅是重新排序. 注释:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现已被自动完成. 语法 shuffle(array) 参数 描述 array 必需.规定要使用的数组. 例子 复制代码 代码如下: <?php $my_array = a
-
PHP中shuffle数组值随便排序函数用法
本文实例讲述了shuffle数组值随便排序函数的用法,分享给大家供大家参考. 具体实例代码如下: 复制代码 代码如下: $typename=20; $rtitle='tt'; for( $i=0;$i<=20;$i++) { $rtitle_rand = array($typename,$rtitle,$typename); shuffle($rtitle_rand);//数组进行随机排序 echo $rtitle_rand['0'].'<br />'; } 希望本文所述对大家的P
-
php使用array_search函数实现数组查找的方法
本文实例讲述了php使用array_search函数实现数组查找的方法.分享给大家供大家参考.具体实现方法如下: <?php $array = array(4,5,7,8,9,10); $found = array_search(8, $array); //调用array_search函数并输出查找结果 if($found) //如果找到输出键 echo "已找到,键为".$found; else //如果没有找到输出错误信息 echo "没有找到"; ?&g
-
PHP数组相关函数汇总
本文总结了PHP数组相关的函数.分享给大家供大家参考.具体如下: 这里包括函数名和用法说明,没有详细的代码范例.感兴趣的朋友可以查阅本站相关的函数用法. 数组的相关处理函数 current(数组名称) 输出数组中一个字符串的值,从第一个起. key(数组名称) 输出数组中一个下标,从第一个起. next(数组名称) 控制数组指针向后移动. prev(数组名称) 控制数组指针向前移动. end(数组名称) 控制数组指针移向最后一位. reset(数组名称) 控制数组指针移向第一位. array_c
-
php访问数组最后一个元素的函数end()用法
本文实例讲述了php访问数组最后一个元素的函数end()用法.分享给大家供大家参考.具体分析如下: end()函数在PHP中用于检索数组中的最后一个元素.end()函数需要一个数组作为其唯一参数,并返回给定数组最后一个元素的元素值. $users = array ("baidu.com", "haosou.com", "sina.com", "jb51.net"); print end($users); 上面的代码返回:jb5
-
PHP常见数组函数用法小结
本文实例讲述了PHP常见数组函数用法.分享给大家供大家参考,具体如下: 1.array array_merge(array $array1 [, array $array2 [, $array]]) 函数功能:将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面.返回结果的数组. 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值.然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面. 如果只给了一个数组并且该数组是数字索引的,则键名会以连续方
-
PHP数组函数array_multisort()用法实例分析
本文实例分析了PHP数组函数array_multisort()用法.分享给大家供大家参考,具体如下: 有时候我们需要对二维数组的某个键的值进行排序,这里就是讨论这个问题.我们可以使用array_multisort()这个函数.array_multisort() 函数对多个数组或多维数组进行排序. 参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY 子句的功能.第一个数组是要排序的主要数组.数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行
-
PHP中使用array函数新建一个数组
PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性.由于数组元素的值也可以是另一个数组,树形结构和多维数组也是允许的. array (PHP 4, PHP 5) array - 新建一个数组 说明 复制代码 代码如下: array array ([ mixed $... ] ) 返回根据参数建立的数组.参数可以用 => 运算
-
php数组函数array_key_exists()小结
array_key_exists()函数判断某个数组中是否存在指定的key,如果key存在,则返回true,否则返回flase array_key_exists(key,array); key:必需.规定键名 array:必需.规定输入的数组 <?php $a = array('a'=>'Dog','b'=>'Cat'); if(array_key_exists('a',$a)){ echo 'Key exists!'; } else{ echo 'Key does not exist!
随机推荐
- 学习YUI.Ext基础第一天
- 虚机服务中常见Asp.Net低级错误一览
- Java使用NIO包实现Socket通信的实例代码
- java 嵌套类的详解及实例代码
- asp.net下将图片保存到XML文件的方法
- VMware中Linux共享mysql数据库的方法
- js确认删除对话框效果的示例代码
- js模仿java的Map集合详解
- PHP新建类问题分析及解决思路
- ie和firefox中img对象区别的困惑
- 浅谈正则表达式 实例入门
- asp 正则 过滤重复字符串的代码
- Python实现MySQL操作的方法小结【安装,连接,增删改查等】
- js 事件处理函数间的Event物件是否全等
- vue-resouce设置请求头的三种方法
- 详解在Linux中搭建一个FTP服务器
- Mongodb数据库的备份与恢复操作实例
- MySQL 通过索引优化含ORDER BY的语句
- jquery设置表单元素为不可用的简单代码
- 使用apache的rotatelogs命令实现WebLogic启动命令的nohup的日志回滚