加入收藏 | 设为首页 | 会员中心 | 我要投稿 天瑞地安资讯网_保定站长网 (https://www.52baoding.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-06-24 12:08:50 所属栏目:PHP教程 来源:互联网
导读:本文实例讲述了PHP函数shuffle()取数组若干个随机元素的方法。分享给大家供大家参考,具体如下: 有时候我们需要取数组中若干个随机元素(比如做随机推荐功能),那么PHP要如何实现呢?一个比较简单的解决方法是用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>';
  //phpfensi.com
      }
  
      $i++;
  
  }
  shuffle()
 
  shuffle() 函数把数组中的元素按随机顺序重新排列。若成功,则返回 TRUE,否则返回 FALSE。本函数为数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
 
  如果传入的是关联数组,你会发现关联数组的键名将丢失。顺便这里说一下解决方法:
 
  // 打乱关联数组的排序
  
  function shuffle_assoc($array)
  
  {  
  
    $randomized_keys = array_rand($array, count($array));  
  
    foreach($randomized_keys as $current_key)
  //phpfensi.com
    {  
  
      $output[$current_key] = $array[$current_key];  
  
    }  
  
    return $output;
  
  }
  另外,php还提供了从数组中随机抽取值的函数:array_rand(),其调用格式如下:array_rand(数组,抽取元素的个数); 当然要实现对二维数组的支持还需要封装一下才能使用。但前面的程序就很好支持二维数组。
 
 

(编辑:天瑞地安资讯网_保定站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!