PHP实现的递归实现方案的一个示例
本文介绍了PHP实现的递归构造方案,供大家参考,如下:最近的CRM项目使用递归方案,其分析如下:
SQL语句如下所示:
创建表(` crm_proxy_bonux_rule `
` ID ` int(11)不为空auto_increment评论超过规则的ID的一部分,
` bouns_rule_name ` varchar(20)不为空的评论规则名称,如D包0-20范围,
`摆脱` bigint(20)默认为空的评论是0,这是默认的全局设置,
` start_rang ` SmallInt(6)默认为空的评论开始范围,
` end_rang ` SmallInt(6)默认为空的评论结束范围,
` bonus_rate ` SmallInt(6)默认为空的评论屈服,
` bonus_reward `十进制(8,2)默认为空的评论奖励现金,
一个值的` chain_pre ` int(11)默认为空的评论列表,默认是0,代表根节点。
` chain_next ` int(11)默认为空的评论链表值,
` is_standard `枚举('0'、'1')默认'0'comment '是一个标准,
主键(id)
InnoDB引擎= = 12 auto_increment默认的字符集utf8);
PHP实现代码如下所示:
私有函数bouns_recursion(美元范围,标准rule_list美元,美元,美元){
美元= 1000;
马克斯=美元美元标准{ 'end_rang}; / /最大值
$分钟=标准{ 'start_rang美元}; / /分钟
bonus_rate美元=美元'bonus_rate标准{ }; / /股息率
如果($范围$分钟){
返回false;
}
standard_amount = 0美元;
$加0;
是否是第一个标准
如果(合标准{ 'is_standard} = = 1){
standard_amount =价格*美元美元美元美元的民* bonus_rate / 100 / 600300;佣金
其他{ }
$加1;第二次累积
}
如果($范围最大){
$数=($最大至最小)+ $ / /计算加;5 4-3 = = 1的差值
金额=(美元价格*数量*美元美元bonus_rate / 100); / /佣金200
其他{ }
$ =($范围- min)+ $加/计算差值为41
金额=(美元价格*数量*美元美元bonus_rate / 100); / /提成
}
金额=金额+ $ standard_amount; / / 800
如果(!空(美元rule_list { { } }的标准'chain_next美元美元美元)范围>最大){
返回的金额=美元-> bouns_recursion(美元区间,美元rule_list { { } } 'chain_next美元标准,rule_list美元,美元);
}
返还金额;
}
希望本文能对PHP程序设计有所帮助。