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

 更新时间:2016年04月02日 10:20:58   作者:nowamagic  
这篇文章主要介绍了PHP函数shuffle()取数组若干个随机元素的方法,结合实例形式详细分析了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代码书写习惯优化小结

    php代码书写习惯优化小结

    本篇文章是对php代码书写习惯优化进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP使用ob_start生成html页面的方法

    PHP使用ob_start生成html页面的方法

    这篇文章主要介绍了PHP使用ob_start生成html页面的方法,对ob_start的用法做了较为详细的分析,并以实例总结了ob_start生成html页面的实现方法,需要的朋友可以参考下
    2014-11-11
  • JoshChen_php新手进阶高手不可或缺的规范介绍

    JoshChen_php新手进阶高手不可或缺的规范介绍

    所以,今天就整理了一下PHP的规范,让大家参考参考。就像大家常说的一句话,“规矩是死的,人是活的。”。是的,但是,在规矩中成长的人都会拥有一堆非常让人羡慕的好习惯
    2013-08-08
  • PHP生成图片验证码功能示例

    PHP生成图片验证码功能示例

    这篇文章主要介绍了PHP生成图片验证码功能,结合实例形式简单介绍了php生成验证码图片的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2017-01-01
  • Linux下安装oracle客户端并配置php5.3

    Linux下安装oracle客户端并配置php5.3

    这篇文章主要介绍了Linux下安装oracle客户端并配置php5.3,需要的朋友可以参考下
    2014-10-10
  • thinkphp 多表 事务详解

    thinkphp 多表 事务详解

    本篇文章是对thinkphp 多表、事务进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php继承中方法重载(覆盖)的应用场合

    php继承中方法重载(覆盖)的应用场合

    这篇文章主要介绍了php继承中方法重载(覆盖)的应用场合,以实例形式较为详细的分析了重载的用法与对应的适用情况及使用技巧,需要的朋友可以参考下
    2015-02-02
  • PHP实现浏览器中直接输出图片的方法示例

    PHP实现浏览器中直接输出图片的方法示例

    这篇文章主要介绍了PHP实现浏览器中直接输出图片的方法,结合实例形式分析了php输出图片的原理与相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • PHP8新特性之JIT案例讲解

    PHP8新特性之JIT案例讲解

    这篇文章主要介绍了PHP8新特性之JIT案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • PHP中phar包的使用教程

    PHP中phar包的使用教程

    php中的phar类似于java中的打包文件jar,即将一个文件夹中的一类文件压缩。下面这篇文章主要给大家介绍了关于PHP中phar包使用的相关资料,文中介绍的还是相对比较详细的,需要的朋友们下面来一起看看吧。
    2017-06-06

最新评论