<?php$pen = ["红","蓝","蓝","红","红","蓝","红","蓝","红","红","红","蓝","红","黄","蓝","其他","其他"]; // 所有的铅笔$redNum = 0; // 赤色铅笔数$yellowNum = 0; // 黄色铅笔数$blueNum = 0; // 蓝色铅笔数$otherNum = 0;foreach($pen as $val){ if($val=="红"){ $redNum++; }else if($val=="黄"){ $yellowNum++; }else if($val=="蓝"){ $blueNum++; }else{ $otherNum++; }}echo "赤色铅笔数:".$redNum.PHP_EOL;echo "黄色铅笔数:".$yellowNum.PHP_EOL;echo "蓝色铅笔数:".$blueNum.PHP_EOL;echo "其他颜色铅笔数:".$otherNum.PHP_EOL;?>
以下会输出:
赤色铅笔数:8黄色铅笔数:1蓝色铅笔数:6其他颜色铅笔数:2
如果有100多种颜色的话,怎么办?难道写100个if和else判断么?当然弗成,那样写下来,代码太不随意马虎理解了,看下面的例子:
<?php$pen = ["红","蓝","蓝","红","红","蓝","红","蓝","红","红","红","蓝","红","黄","蓝","其他","其他"]; // 所有的铅笔$redNum = 0; // 赤色铅笔数$yellowNum = 0; // 黄色铅笔数$blueNum = 0; // 蓝色铅笔数$otherNum = 0;foreach($pen as $val){ switch($val) { case "红": $redNum++; break; case "黄": $yellowNum++; break; case "蓝": $blueNum++; break; default: $otherNum++; break; }}echo "赤色铅笔数:".$redNum.PHP_EOL;echo "黄色铅笔数:".$yellowNum.PHP_EOL;echo "蓝色铅笔数:".$blueNum.PHP_EOL;echo "其他颜色铅笔数:".$otherNum.PHP_EOL;?>
输出:

赤色铅笔数:8黄色铅笔数:1蓝色铅笔数:6其他颜色铅笔数:2
和上面的输出一样。
注:switch($val)表示取出$val的值,case "红":表示$val如果是"红",default:表示没有匹配到的红,黄,蓝的其他选项的情形