首页 > 编程语言 > 详细

随机取出数组中的某些值,并删除它们

时间:2015-12-30 00:17:49      阅读:208      评论:0      收藏:0      [点我收藏+]

  今天遇到这样一个情景。这样的,一个抽奖活动,预先获取一堆人参与信息,一个人最多只能中奖一次。活动有活动的配置信息,比如说一等奖有多少人,二等奖有多少人等等。。

说白了,就是从这个参与人数组里,取出来一部分人放到各个奖项里。这里我的处理方式,直接把各个奖项的获奖者放到一起。

循环奖项的数组,然后从参与人信息里取数据。

 

<?php

  $prize_arr = array(
       array(‘id‘ => 1, ‘prize‘ => ‘平板电脑‘, ‘v‘ => 1), //其中id表示中奖等级,prize表示奖品,v表示中奖概率(这里暂时当人数了
       array(‘id‘ => 2, ‘prize‘ => ‘数码相机‘, ‘v‘ => 2),
       array(‘id‘ => 3, ‘prize‘ => ‘音箱设备‘, ‘v‘ => 3),
       array(‘id‘ => 4, ‘prize‘ => ‘4G优盘‘, ‘v‘ => 4),
  );
  
  
  $persons = array(
      ‘0‘ => ‘aaa‘,
      ‘1‘ => ‘bbb‘,
      ‘2‘ => ‘ccc‘,
      ‘3‘ => ‘ddd‘,
      ‘4‘ => ‘eee‘,
      ‘5‘ => ‘fff‘,
      ‘6‘ => ‘ggg‘,
      ‘7‘ => ‘hhh‘,
      ‘8‘ => ‘iii‘,
      ‘9‘ => ‘jjj‘,
      ‘10‘ => ‘kkk‘,
  );
  shuffle($persons);// 打乱顺序,表示随机取人
  
  
  $finall_arr = array();
  foreach($prize_arr as $val){
      
      $finall_arr[$val[‘id‘]] = array(
          ‘person‘ => get_del($persons, $val[‘v‘]),
      ); 
  }
  
  print_r($finall_arr);
  
  // 取出一部分元素,并删除它们。传递数组地址
  function get_del(&$arr, $length){
      $temp = array_slice($arr, 0, $length);// 取出
      array_splice($arr, 0, $length);// 删除,这个函数很强大,对数组的增删改都可以...第四个参数可以替换
      return $temp;
  }

 

随机取出数组中的某些值,并删除它们

原文:http://www.cnblogs.com/firstForEver/p/5087494.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!