菜单

金沙国际按首字母重组数组排序

2019年3月4日 - 金沙编程资讯

金沙国际,        foreach ($res as $k => $v)
        {
            $result[$v[‘first’]][] = $v;
        }
        

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

不久前做事中有一类型,APP客户端有大转盘抽奖,具体怎么着抽奖当然在我们服务端实现洛。上边和豪门简单分享一下贯彻代码:

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

//压入首字母
        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’;
            }
        }

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);   //总概率
 
$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);

另附上别的网民的化解办法

        ksort($result);

        ksort($result);

 代码如下

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;
}

复制代码 代码如下:

相关文章

发表评论

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

网站地图xml地图