先导
PHP遍历数组的三种方式及其区别
①使用for循环
②使用foreach循环
③使用while、list()、each()组合循环
区别在于:
for循环只能遍历索引数组;
foreach循环既可以遍历索引数组也可以遍历关联数组,会对数组进行reset()操作,重置指针位置;
第三种组合循环同样可以遍历索引数组和关联数组,但是不会进行reset()操作,保留遍历前的指针位置。
ps:这里再说明一下索引数组和关联数组的区别
索引数组就是数组的下标是数字其实这是关联数组的简写方式
举个例子
arr[0] 其实他是arr[“0”] 的简写方式
所以索引数组的本质上是关联数组
关联数组的定义就是数组里面的下标为字符串
例如
arr[“index”] 可以简写为arr.index
这时候有人会问为什么上面的arr[“0”]不简写为arr.0
有一个很重要的原因就是 和js里面的小数冲突了 所以简写方式用[]代替。
if....elseif
在elseif中只能有一个表达式为true,多个elseif语句从句是排斥关系。
在使用elseif语句时有一个基本原则,总是把优先范围小,可能性大的条件放在前面处理。
switch...case...
switch后面的控制表达式的数据类型只能是整型、浮点类型或者字符串
continue语句作用到switch中类似于break
跳出switch外的循环,可以使用continue 2
switch...case...会生成跳转表,直接跳转到对应case
扩展
PHP中如何优化多个if...elseif语句的情况?
①把优先范围小,可能性大的条件放在前面处理
②表达式的数据类型满足switch...case...可以替换成该流程控制,效率高一些