数组遍历的四种方法
程序员文章站
2022-07-15 08:26:33
...
-
使用 for 循环遍历数组
count($arr) // 用于统计数组元素的个数
for循环只能用于遍历,纯索引数组!!!!
如果存在关联数组,count统计时会统计两种数组的总个数,使用for循环遍历混合数组,导致数组越界!!
$arr = array(1, 2, 3, 5, 6, 7); $num = count($arr); // count 最好放到for外面,可以让函数只执行一次 echo "数组元素的个数{$num}<br/>"; for($i=0;$i<$num;$i++){ echo "{$i}==>{$arr[$i]}<br/>"; }
-
使用 foreach 循环遍历数组
foreach可以遍历任何类型的数组!!!
$arr = array(1, 2, 3, "one"=>(4, 5, 6, 7)); foreach($arr as $value){ echo "{$item}<br>"; } foreach($arr as $key => $value){ echo "{$key}==>{$item}<br>"; }
-
使用 list(), each(), while() 遍历数组
list():用于将数组的每一个值,赋值给list函数的每一个参数。(list函数的参数,必须小于等于数组的元素个数);
eg:
list($a, $b, $c) = [1,2,3]; // $a=1; $b=2; $c=3; // list可以通过空参数,选择性的解析数组的值 list($a, , $b) = [1, 2, 3]; // $a=1; $b=3;
each():用于返回数组当前指针所在位的键值对!并将指针后移一位;返回值:如果指针有下一位,返回一个数组。包含一个索引数组(0-键,1-值)和一个关联数组(“key”-键,“value”-值);如果指针没有下一位,返回false;
- each($arr) 返回数组或false;
- 把数组或false赋值给$a;
- while判断$a如果是数组,继续执行下一次;
- 如果$a是false,终止循环
while($a = each($arr)){ echo "{$a[0]} --> {$a[1]}<br>"; echo "{$a['key']} --> {$a['value']}<br>"; }
while (list($key, $value) = each($arr)) { echo "{$key} --> {$value}<br>"; } // 数组使用each()遍历完一遍后,指针使用处于最后一位的下一位;即再用each(),始终返回false; // 如果还需使用,需用reset($arr);函数,重置数组指针; reset($arr);
-
使用数组指针遍历数组
① next:将数组指针,后移一位。并返回后一位的值;没有返回false
② prev:将数组指针,前移一位。并返回前一位的值;没有返回false
③ end: 将数组指针,移至最后一位,返回最后一位的值;空数组返回false
④ reset:将数组指针,恢复到第一位。并返回第一位的值;空数组返回false
⑤ key: 返回当前指针所在位的键;
⑥ current:返回当前指针所在位的值;$arr = [1, 2, 3, 4, "one" => 5]; while (true) { echo key($arr); echo "--"; echo current($arr); echo "<br>"; if (!next($arr)) { break; } } reset($arr); //第二种方式: do { echo key($arr); echo "--"; echo current($arr); echo "<br>"; } while(next($arr)); reset($arr);
上一篇: 创业,就是逼着你不得不做你所讨厌的事
下一篇: 盘点明年让你高攀不起的50个项目