PHP嵌套if语句实现数字颜色匹配求助
使用嵌套if语句实现PHP数字与颜色的匹配
没问题,咱们来一步步实现这个需求。先看你定义的几个数组,我们可以通过嵌套if语句,按优先级先处理特殊的$zero数组,再依次匹配红、黑对应的数字,逻辑非常清晰。
先给你完整的代码示例:
// 你的数组定义 $zero = array(0=>"Empty",1=>"Red"); $red = array(3=>"Red",5=>"Red",7=>"Red",9=>"Red",12=>"Red",14=>"Red",16=>"Red",21=>"Red",23=>"Red",25=>"Red",27=>"Red",30=>"Red",32=>"Red",34=>"Red",36=>"Red"); $black = array(2=>"Black",4=>"Black",6=>"Black",8=>"Black",10=>"Black",11=>"Black",13=>"Black",15=>"Black",17=>"Black",22=>"Black",24=>"Black",29=>"Black",31=>"Black"); // 假设你后续补全了剩余元素 // 要匹配的目标数字(可替换为任意需要判断的数字) $number = 5; $color = ""; // 嵌套if判断逻辑 if (array_key_exists($number, $zero)) { // 先判断是否在特殊的zero数组里(0和1是特殊值) $color = $zero[$number]; } else { if (array_key_exists($number, $red)) { // 不在zero数组里,再判断是否属于红色数字集合 $color = $red[$number]; } else { if (array_key_exists($number, $black)) { // 既不在zero也不在red,判断是否属于黑色数字集合 $color = $black[$number]; } else { // 所有情况都不匹配时,返回默认提示 $color = "Invalid Number"; } } } // 输出匹配结果 echo "Number $number corresponds to color: $color";
逻辑拆解:
- 第一层
if优先检查目标数字是否在$zero数组中——因为0和1是特殊值(0对应Empty,1对应Red),优先级最高,所以放在最前面判断。 - 如果不在
$zero里,进入第一层else,通过第二层if检查是否属于红色数字集合,匹配到就赋值Red。 - 要是也不在
$red里,进入第二层else,第三层if检查黑色数字集合,匹配到就赋值Black。 - 最后一层
else处理所有不匹配的情况,返回无效提示,避免出现空值或报错。
要是你觉得多层嵌套看着繁琐,也可以用elseif简化成单层判断,但既然你明确要求嵌套if,上面的写法就完全符合需求啦。
内容的提问来源于stack exchange,提问作者Aqil
相关产品推荐
相关产品推荐

