首页 > 后端开发 > PHP问题 > php中遍历数组的五种方法是什么

php中遍历数组的五种方法是什么

青灯夜游
发布: 2023-03-16 06:46:01
原创
5847 人浏览过

五种遍历方法:1、用“for($i=0;$i<数组长度;$i++)”;2、用“foreach(数组 as="">$v)”;3、用“while(list($k,$v)=each(数组))”;4、用“array_map(回调函数,数组)”等。

php中遍历数组的五种方法是什么

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

php中遍历数组的五种方法

方法1:使用for循环语句

for循环会将控制循环次数的变量预先定义在for语句中,因此for循环语句能够按照已知的循环次数进行循环操作,适用于明确知道脚本需要运行的次数的情况。

for 循环的语法格式如下:

for (初始化语句; 循环条件; 变量更新--自增或自减) {
    语句块;  
}
登录后复制

下面通过代码示例来具体看看:

&lt;?php
header(&quot;Content-type:text/html;charset=utf-8&quot;);
$array= array(2,&quot;数学&quot;,&quot;梨子&quot;,3.14,&quot;榴莲&quot;,12);
for ($i=0; $i &lt; count($array); $i++) { 
    echo $array[$i] . &quot;&lt;br/&gt;&quot;;
} 
?&gt;
登录后复制

输出结果:

1.png

方法2:使用foreach循环语句

foreach是专门为遍历数组而设计的语句,是遍历数组时常用的方法,在遍历数组方面提供了很大的便利;PHP5后还可以遍历对象(foreach仅能够应用于数组和对象)。

foreach语句遍历数组与数组下标无关,且可以用于不连续的索引数组和以字符串为下标的关联数组。

下面通过代码示例来具体看看:

&lt;?php
header(&quot;Content-type:text/html;charset=utf-8&quot;);
$array= array(&quot;香蕉&quot;,&quot;苹果&quot;,&quot;梨子&quot;,&quot;橙子&quot;,&quot;橘子&quot;,&quot;榴莲&quot;);
foreach ($array as $val){
    echo &quot;值是:&quot; . $val ;
    echo &quot;&lt;br/&gt;&quot;;
}
echo &quot;&lt;br/&gt;&quot;;
foreach ($array as $key =&gt; $value) { 
    echo &quot;键名为:&quot;.$key.&quot;,键值为:&quot;.$value . &quot;&lt;br/&gt;&quot;;
} 
?&gt;
登录后复制

输出结果:

2.png

遍历给定的 $array 数组,在每次循环中会将当前数组的值赋给 $value,键名赋给 $key。

方法3:利用while循环+each()+list()

each() 函数返回数组中当前的键值并将数组指针向前移动。在执行 each() 之后,数组指针将停留在数组中的下一个元素或者当碰到数组结尾时停留在最后一个元素。

而list() 函数用于在一次操作中给一组变量赋值。

while循环+each() 函数+ list() 函数可以遍历数组,下面通过代码示例来看看:

&lt;?php
header(&quot;Content-type:text/html;charset=utf-8&quot;);
$array= array(&quot;香蕉&quot;,&quot;苹果&quot;,&quot;梨子&quot;,&quot;橙子&quot;,&quot;橘子&quot;,&quot;榴莲&quot;);
while( list($key, $val) = each($array) ) {
    echo &quot;$key =&gt; $val&lt;br&gt;&quot;;
}
?&gt;
登录后复制

输出结果:

3.png

方法4:使用array_map()函数

使用匿名函数的方式,处理数组里的每个元素。遍历完成后返回一个新的数组

&lt;?php
$arr = [&amp;#39;a&amp;#39;, &amp;#39;b&amp;#39;, &amp;#39;c&amp;#39;];
var_dump($arr);
$arr = array_map(function ($item) {
    return $item . &amp;#39;_i&amp;#39;;
}, $arr);
var_dump($arr);
?&gt;
登录后复制

4.png

你可以同时处理多个数组

&lt;?php
header(&amp;#39;content-type:text/html;charset=utf-8&amp;#39;);   
$arr_1 = [&amp;#39;a&amp;#39;, &amp;#39;b&amp;#39;, &amp;#39;c&amp;#39;];
$arr_2 = [&amp;#39;你&amp;#39;, &amp;#39;好&amp;#39;, &amp;#39;吗&amp;#39;, &amp;#39;原&amp;#39;, &amp;#39;罪&amp;#39;];
// $arr_n = [...];
$arr = array_map(function ($item_1, $item_2) {
    return $item_1 . &amp;#39;_&amp;#39; . $item_2 . &amp;#39;_i&amp;#39;;
}, $arr_1, $arr_2);

var_dump($arr); // [&amp;#39;a_你_i&amp;#39;, &amp;#39;b_好_i&amp;#39;, &amp;#39;c_吗_i&amp;#39;, &amp;#39;_原_i&amp;#39;, &amp;#39;_罪_i&amp;#39;]
?&gt;
登录后复制

5.png

方法5:使用array_walk()函数

以引用传递的形式遍历你的数组,没有返回值,而且只能处理一个数组。

&lt;?php
$arr = [&amp;#39;a&amp;#39;, &amp;#39;b&amp;#39;, &amp;#39;c&amp;#39;];
array_walk($arr, function (&amp;$item) {
    $item = $item . &amp;#39;_i&amp;#39;;
});

var_dump($arr); 
?&gt;
登录后复制

6.png

注意到 &amp;$item 了吗,是的,多了个&,代表着你的形参是以引用传递接收数据的。你要做的就是想办法改变这个参数。

推荐学习:《PHP视频教程

以上是php中遍历数组的五种方法是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板