PHP遍历数组的三种方式及各自的区别
三种方式:
- 使用for循环
- 使用foreach循环
- 使用while、list()、each()组合循环
区别:
- for循环只能遍历索引数组,foreach可以遍历索引跟关联数组,联合使用list()、each()和while同样可以遍历索引和关联数组
- while和list()、each()组合不会reset,也就是数组的指针不会回到开头,这样也就不会把指针清零;这样如果刚开始遍历的时候,指针没有指向第一个索引,就不会遍历第一个索引
- foreach遍历会对数组进行reset操作;
while、list、each组合
注意:当each()指向最后时,返回false,因此可以配合while使用;each()函数在PHP7中已被弃用
<?php $array = array( "姓名"=>"初雨", "age"=>"18", "爱好"=>"PHP" ); while(list($key,$value) = each($array)){ echo $key . "=>" . $value."<br>"; } ?>
PHP分支考点
if...elseif
-
- 在elseif语句中只能有一个表达式为true,即在elseif语句中只能有一个语句块被执行,多个elseif从句是排斥关系
- 使用elseif语句有一个基本原则,总是优先把范围小的条件放到前面处理
if...elseif的优化
-
- 尽量把可能性大的条件写在前面。
- 如果判断的内容是整形、符点类型或字符串的话,可以用switch进行替换
- 和if不同,switch后面的控制表达式的数据类型只能是整形、符点类型或字符串
- continue语句作用在switch里面,相当于break。如果想让continue跳出switch外面的循环,可以使用 continue2,continue2可以跳出两层循环
- 由于switch...case...会生成一个跳转表,直接跳转到case里,所以在执行复杂判断时使用switch case会大大提升效率
- 如果条件比一个简单的比较要复杂的多或者在一个很多次的循环中,那么用switch语句可能会快一些