问个简单的php编程逻辑判断问题
楼主遇到这样一个问题:
有10个人,分别是甲,乙,丙,丁,戊,己,庚,辛,壬,癸。
它们的优先级别是甲>乙>丙>丁>戊>己>庚>辛>壬>癸。
现在有这样一个需求。让这10个人中的其中一个人去做一件事情。
根据他们优先级别去选,
假设0=不在家,1=在家,若甲=1,就让甲去做,若甲=0;就让乙去做。若乙=1,就让乙去做,若甲=0;就让丙去做,以此类推。
若使用php处理这类问题,我以前的做法是一层一层的嵌套if判断,代码如下:
<?php
if ($a == 0) {
/*不在家的时候让下一位去干*/
if ($b == 0) {
/*不在家的时候让下一位去干*/
if ($c == 0) {
/*不在家的时候让下一位去干*/
if ($d == 0) {
/*不在家的时候让下一位去干*/
if ($e == 0) {
/*不在家的时候让下一位去干*/
if ($f == 0) {
/*不在家的时候让下一位去干*/
if ($g == 0) {
/*不在家的时候让下一位去干*/
if ($h == 0) {
/*不在家的时候让下一位去干*/
if ($j == 0)
{
/*不在家的时候让下一位去干*/
if ($k == 0) {
/*不在家的时候让下一位去干*/
} else
{
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
} else {
/*在家的时候干的事 */
}
?>
后来觉得这种做法过于死板。不灵活。请问各位大师更好更灵活的办法解决此类问题?
后来觉得这种做法过于死板。不灵活。请问各位大师更好更灵活的办法解决此类问题?
麻烦给我简单的例子。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
此问题可以抽象一点,
可以利用
foreach
和表驱动法
来简化if
判断。示例代码如下:
结果如下:
采用配置文件,将你的策略写入配置文件,以二维数组为例:
先对数据按照 weight 权重做排序,然后遍历
PHP为例