【bf88必发唯一官网】PHP大转盘中奖几率算法与示范代码,php去除数组中另行数据

by admin on 2019年2月6日

//压入首字母
        foreach ($res as $k => $v)
        {
            $res[$k][‘first’] =
strtoupper(substr(trim($v[‘name’]), 0, 1));
            $arr = array(‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘I’,
‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘O’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’,
‘X’, ‘Y’, ‘Z’);
            //若是还是不是字母 把她筹划到0-9队列
            if (!in_array($res[$k][‘first’], $arr))
            {
                $res[$k][‘first’] = ‘0-9’;
            }
        }

//压入首字母
        foreach ($res as $k => $v)
        {
            $res[$k][‘first’] =
strtoupper(substr(trim($v[‘name’]), 0, 1));
            $arr = array(‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘I’,
‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘O’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’,
‘X’, ‘Y’, ‘Z’);
            //假诺不是字母 把她设计到0-9体系
            if (!in_array($res[$k][‘first’], $arr))
            {
                $res[$k][‘first’] = ‘0-9’;
            }
        }

近年干活中有一品类,APP客户端有大转盘抽奖,具体怎样抽奖当然在我们服务端达成洛。上面和豪门简单分享一下完成代码:

废话不多说,间接上代码

        foreach ($res as $k => $v)
        {
            $result[$v[‘first’]][] = $v;
        }
        

        foreach ($res as $k => $v)
        {
            $result[$v[‘first’]][]【bf88必发唯一官网】PHP大转盘中奖几率算法与示范代码,php去除数组中另行数据。 = $v;
        }
        

【bf88必发唯一官网】PHP大转盘中奖几率算法与示范代码,php去除数组中另行数据。 代码如下

复制代码 代码如下:

        ksort($result);

        ksort($result);

header(“Content-type: text/html; charset=utf-8”);
$prize_arr = array(
‘0’ =>
array(‘id’=>1,’prize’=>’机械电脑’,’v’=>1),
‘1’ =>
array(‘id’=>2,’prize’=>’单反’,’v’=>5),
‘2’ => array(‘id’=>3,’prize’=>’音箱设备’,’v’=>10),
‘3’ => array(‘id’=>4,’prize’=>’4G优盘’,’v’=>12),
‘4’ => array(‘id’=>5,’prize’=>’10Q币’,’v’=>22),
‘5’ => array(‘id’=>6,’prize’=>’下次难说就能中哦’,’v’=>50),
);
 
$actor = 100;
 
foreach ($prize_arr as $v)
{
$arr[$v[‘id’]] = $v[‘v’];
}
foreach ($arr as &$v) {
$v = $v*$actor;
}
asort($arr);
$sum = array_sum($arr);   //总概率
bf88必发唯一官网, 
$rand = mt_rand(1,$sum);
 
$result = ”;    //中奖产品id
 
foreach ($arr as $k => $x)
{
if($rand <= $x)
{
$result = $k;
break;
}
else
{
$rand -= $x;
}
}
$res[‘yes’] = $prize_arr[$result-1][‘prize’]; //中奖项
print_r($res);

/**
         * 给数组排重
         *
与array_unique函数的区分:它要求val是字符串,而以此可以是数组/对象
         *
         * @param unknown_type $arr 要排重的数组
         * @param unknown_type $reserveKey 是还是不是保留原来的Key
         * @return unknown
         */
        static function m_ArrayUnique($arr, $reserveKey = false)
        {
            if (is_array($arr) && !empty($arr))
            {
                foreach ($arr as $key => $value)
                {
                    $tmpArr[$key] = serialize($value) . ”;
                }
                $tmpArr = array_unique($tmpArr);
                $arr = array();
                foreach ($tmpArr as $key => $value)
                {
                    if ($reserveKey)
                    {
                        $arr[$key] = unserialize($value);
                    }
                    else
                    {
                        $arr[] = unserialize($value);
                    }
                }
            }
            return $arr;
        }

代码很不难,却非凡的实用,有亟待的伙伴可以一贯拿去用的。

另附上其余网友的解决办法

复制代码 代码如下:

<?php
$input = array(“a” => “green”,””, “red”,”b” => “green”, “”,”blue”,
“red”,”c” => “witer”,”hello”,”witer”);
//$result = array_unique($input); //去除重复元素
$result = a_array_unique($input);   //只留下单一元素
foreach($result as $aa)
{
echo $aa.”<br />”;
}
function multi_unique($array) {
   foreach ($array as $k=>$na)
       $new[$k] = serialize($na);
   $uniq = array_unique($new);
   foreach($uniq as $k=>$ser)
       $new1[$k] = unserialize($ser);
   return ($new1);
}

function a_array_unique($array)//写的相比好
{
   $out = array();
   foreach ($array as $key=>$value) {
       if (!in_array($value, $out))
{
           $out[$key] = $value;
       }
   }
   return $out;
}
?>

PHP数组去除重复项 有个放置函数array_unique (),但是php的
array_unique函数只适用于一维数组,对多维数组并不适用,以下提供一个二维数组
的 array_unique函数

复制代码 代码如下:

function unique_arr($array2D,$stkeep=false,$ndformat=true)
{
    // 判断是或不是保留顶级数组键 (超级数组键可以为非数字)
    if($stkeep) $stArr = array_keys($array2D);
    // 判断是还是不是保留二级数组键 (所有二级数组键必须一律)
    if($ndformat) $ndArr = array_keys(end($array2D));
    //降维,也足以用implode,将一维数组转换为用逗号连接的字符串
    foreach ($array2D as $v){
        $v = join(“,”,$v);
        $temp[] = $v;
    }
    //去掉重复的字符串,也就是再次的一维数组
    $temp = array_unique($temp);
    //再将拆开的数组重新组建
    foreach ($temp as $k => $v)
    {
        if($stkeep) $k = $stArr[$k];
        if($ndformat)
        {
            $tempArr = explode(“,”,$v);
            foreach($tempArr as $ndkey => $ndval)
$output[$k][$ndArr[$ndkey]] = $ndval;
        }
        else $output[$k] = explode(“,”,$v);
    }
    return $output;
}

演示:

$array2D =
array(‘first’=>array(‘title’=>’1111′,’date’=>’2222’),’second’=>array(‘title’=>’1111′,’date’=>’2222’),’third’=>array(‘title’=>’2222′,’date’=>’3333’)); 
print_r($array2D); 
print_r(unique_arr($array2D,true));

你或许感兴趣的篇章:

  • php从数组中擅自挑选若干不另行元素的艺术
  • PHP查找数值数组中不另行最大和微小的10个数的方法
  • php数组函数连串之array_unique() –
    去除数组中另行的元素值
  • php array_flip()
    删除数组重复元素
  • PHP
    n个不另行的即兴数生成代码
  • php二维数组合并及去重新的不二法门
  • PHP三种去掉数组重复值的法子相比较
  • PHP去除数组中再次的因素并按键名排序函数
  • php去除重复字的达成代码
  • PHP获取字符流中率先个不重复字符的措施

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图