PHP Programer  - 讨论区

标题:有关PHP处理数据,不重复取同一条数据的方法

2010年10月17日 星期日 22:06

方法1.

$temp_arr = array();
$my_arr = array();
for($i = 0;$i<10;$i++){
    array_push($temp_arr, $i);
}
for($j=0;$j<10;$j++){
    $my_arr[] = array_splice($temp_arr, rand(0, sizeof($temp_arr) - 1), 1);
}
print_r($my_arr);

方法2.
//随机生成不重复的数据
function getRand($min,$max,$ary){
 $myrand = '';
 $myrand = rand($min,$max);
 return in_array($myrand,$ary) ? getRand($min,$max,$ary) : $myrand;
}
function getLottery(){
 $ary = array();
 $con = array();
 global $DB_article;
 $sql_str = "SELECT count(*) FROM module_data WHERE moduleid in (846)  AND status=0 ORDER BY date DESC ";
 $num = $DB_article->get_var($sql_str,"O");
 $num = $num-1;
 for($i=0;$i< $num;$i++){
  $con[] = getRand(0,$num,$con);
 }
shuffle($con);                                       // 打乱数组
 return $con; 
}

方法3.

<?php
/*
随机生成福彩双色球号码
程序:天凡
httP://blog.tianfan.net
*/
$red = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33);
$blue = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
for ($i=0;$i<6;$i++){
$index = rand(0,32-$i);
$redBall[]= $red[$index];
unset($red[$index]);
for($k=$index;$k<count($red)-1;$k++){
   $red[$k]=$red[$k+1];
}
}
asort($redBall);
?>
<div style="background-color:red;color:white;width:160px;float:left;text-align:center;">
<?php
foreach($redBall as $v){
echo $v."&nbsp";
}
?>
</div>
<div style="background-color:blue;color:white;width:40px;float:left;text-align:center">
<?php
echo $blue[rand(0,15)];
?>
</div>

第一种最简单,最开始不知道,一个网友提供给我的解决方案。

第二种比较笨,写了两个函数来实现(我自己写的,很笨!)。

第三个来自网友天凡 提供他的彩票程序实现的。

 

程序没详细注释,个人觉得没必要注释!

 

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号