找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 413|回复: 0
打印 上一主题 下一主题

PHP函数shuffle()取数组若干个随机元素的方法分析

[复制链接]

3444

主题

3465

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11142
跳转到指定楼层
楼主
发表于 2018-2-14 05:37:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            本文实例讲述了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
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数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
  • JavaScript中实现PHP的打乱数组函数shuffle实例
  • PHP中shuffle数组值随便排序函数用法
  • php访问数组最后一个元素的函数end()用法
  • php使用gettimeofday函数返回当前时间并存放在关联数组里
  • PHP数组相关函数汇总
  • PHP使用in_array函数检查数组中是否存在某个值
  • PHP数组和explode函数示例总结
  • php使用array_search函数实现数组查找的方法
  • php 利用array_slice函数获取随机数组或前几条数据
  • PHP中使用array函数新建一个数组
  • php数组函数array_key_exists()小结
  • PHP常见数组函数用法小结
  • PHP数组函数array_multisort()用法实例分析
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端