php按位与条件匹配算法

阅读更多
在条件固定的前提下,传参想匹配多个条件,可以使用按位与进行匹配,具体如下:
 0x00000001,
    //备注和留言
    '备注和留言 __FLAG_CODE       '=> 0x00000002,
    //物流公司标记
    '物流公司标记 __LOGI_CODE       '=> 0x00000004,
    //产品不匹配
    '产品不匹配 __PRODUCT_CODE    '=> 0x00000008,
    //用户多订单
    '用户多订单 __MEMBER_CODE     '=> 0x00000010,
    //乡村物流标记
    '乡村物流标记 __LOGI_LITE_CODE  '=> 0x00000020,
    //单订单
    '单订单 __SINGLE_CODE     '=> 0x00000040,
    //多订单
    '多订单 __MUTI_CODE       '=> 0x00000080,
    //仓库
    '仓库 __BRANCH_CODE     '=> 0x00000100,
    //库存
    '库存 __STORE_CODE      '=> 0x00000200,
    //异常
    '异常 __ABNORMAL_CODE   '=> 0x00000400,
    //单订单且有备注
    '单订单且有备注 __EXAMINE_CODE    '=> 0x00000800,
    //超卖订单
    '超卖订单 __OVERSOLD_CODE   '=> 0x00001000,
  //淘宝订单优惠中有赠品信息		
    '淘宝订单优惠中有赠品信息 __PMTGIFT_CODE    '=> 0x00002000,
    '淘宝订单优惠中有赠品信息 __COMBINE_CODE    '=> 0x00004000,
    //CRM赠品信息
    'CRM赠品信息 __CRMGIFT_CODE    '=> 0x00008000,
    //检测订单是否开发票
    '检测订单是否开发票 __TAX_CODE        '=> 0x00010000,
    //检查物流到不到
    '检查物流到不到 __LOGIST_ARRIVED 	'=> 0x00040000,

);

$testnum = $_GET['num'];
$html = "";
$index =1;
foreach ($ary as $key => $value) {
	$result = $value & $testnum;
	$color = '';
	if ($result > 0) {
		$color = "style='color:red;'";
	}
	$html .= "";
	$index++;
}
echo $html."
序号目标&状态码结果匹配结果(红色)
".$index."" . $testnum. "(".decbin($testnum).")&" . $value. "(".decbin($value).")" . $result. "(".decbin($result).")". $key ."
";


测试:将上面的代码保存为test.php ,并放入运行环境, 在浏览器中输入
localhost/test.php?num=12


你会看到结果
php按位与条件匹配算法_第1张图片


其中红色的为匹配上的条件。
以二级制来进行与运算,利用相同位上为1来进行匹配


如有不足, 欢迎指正。共同学习,共同进步。




  • php按位与条件匹配算法_第2张图片
  • 大小: 32.7 KB
  • 查看图片附件

你可能感兴趣的:(php)