mysql中set多选项类型的数据解析原理

一、set多选项类型的应用形式

set类型通常用于存储表单中的“多选项”的值。
设定形式:
set(‘选项值1’, ‘选项值2’, ‘选项值3’, ....)
这些选项值都对应了相应的“索引值”,其索引值从1开始,并“依次翻倍”。
即这些选项的索引值分别为:1, 2, 4, 8, 16, ..... (其实就是2的n次方)
set类型最多可设定64个选项值。

应用如下:

二、原理解析

当选项数据以一个整数的形式传递过来的时候,其解析的原理如下:

解析原理代码演示如下:

$set = ["篮球","足球","冰球","排球","水球"];
$getNum = 6;
function getSet($getNum,$set){
    //将获取的数值转化为二进制,并进行反转
    $binNum = strrev(decbin($getNum));
    $strlen = strlen($binNum);
    $str = "";
    for($i=0;$i<$strlen;$i++){
        if($binNum[$i]==1) $str .= $set[$i].",";
    }
    $str = rtrim($str,",");
    return $str;
}
echo getSet($getNum,$set);

运行结果如下:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值