这篇文章主要讲解了“什么是PHP数组遍历”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“什么是PHP数组遍历”吧!
其实就是访问数组中每个内容的一个过程,在遍历过程中,我们可以按条件拿到自己需要的内容,或者操作数组中的元素。
PHP编程中常用 for、foreach、each()、list() 对数组进行遍历。
基本格式:
<?php$fruits = array("a1", "b2", "cd3", "e4");for ($i=0; $i < count($fruits); $i++) { echo current($fruits) . " "; echo $fruits[$i] . "<br/>";}?>
for 循环遍历数组没有改变数组的内部指针。
3、foreach 遍历数组
基本格式:
<?php$array = [0, 1, 2];foreach ($array as &$val){ // 遍历数组 echo $val; }?>
遍历数组, 使用current()输出数组指针指向的当前单元的值
<?php$array = [0, 1, 2];foreach ($array as &$val){ var_dump(current($array)); }?>
在 PHP 7 中运行以上程序的输出结果为 :
int(0) int(0) int(0)
而在 PHP 7 之前的版本中则会输出 :
int(1) int(2) bool(false)
由此说明 PHP 7 之前的版本在进行 foreach 循环时会改变数组内部的指针。
使用 foreach 循环遍历数组的时候,foreach 是对数组的备份进行操作,在循环内部修改数组不会对循环之外访问数组有影响。示例如下:
<?php
$arr = array(0, 1, 2);foreach ($arr as $val){ $val = $val*2; // 元素值乘以2}print_r($arr);?>
输出结果如下:
Array( [0] => 0 [1] => 1 [2] => 2)
如果是按照引用循环,那么在循环内部对数组做的修改会影响数组本身。示例如下:
<?php$arr = array(0, 1, 2);foreach ($arr as &$val){ $val = $val*2; // 元素值乘以2}print_r($arr);?>
运行结果如下:
Array( [0] => 0 [1] => 2 [2] => 4)
each() 函数返回数组中当前的键值并将数组指针向前移动。在执行 each() 之后,数组指针将停留在数组中的下一个元素或者当碰到数组结尾时停留在最后一个元素。如果要再用 each 遍历数组,就必须使用 reset()。
<?php
$info = array("我的名字", "叫张三", "啦啦啦啦~", "24岁", "张三");$val1 = each($info); //指针向后移动一步print_r($val1);echo current($info) . "\n"; //当前指针指向值$val2 = each($info);print_r($val2);echo current($info) . "\n";?>
运行结果如下:
Array( [1] => 我的名字 [value] => 我的名字 [0] => 0 [key] => 0)叫张三Array( [1] => 叫张三 [value] => 叫张三 [0] => 1 [key] => 1)啦啦啦啦~
使用 list() 将数组的值分别赋给变量,示例如下:
<?php$info = array("我的名字", "叫张三", "啦啦啦啦~", "24岁", "张三");list($website, $course, $url, $age, $author) = $info;echo $website . "\n" . $course . "\n" . $url . "\n" . $age . "\n" . $author;?>
运行结果如下:
我的名字叫张三啦啦啦啦~24岁张三
each() 函数和 list() 函数结合可以遍历数组,示例如下:
<?php
$info = array( "a" => "我的名字", "b" => "叫张三", "c" => "啦啦啦啦~", "d" => "24岁", "e" => "张三");while( list($key, $val) = each($info) ) { echo "$key => $val\n";}?>
运行结果如下:
a => 我的名字b => 叫张三c => 啦啦啦啦~d => 24岁e => 张三
感谢各位的阅读,以上就是“什么是PHP数组遍历”的内容了,经过本文的学习后,相信大家对什么是PHP数组遍历这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。