一起源码网

  • www.171739.xyz
  • 全球最大的互联网技术和资源下载平台
搜索
猜你喜欢
查看: 5427|回复: 1
打印 上一主题 下一主题

关于php foreach两种用法实例详解

[复制链接]

0

主题

0

帖子

1万

积分

钻石会员

Rank: 8Rank: 8

积分
17424
QQ
跳转到指定楼层
楼主
发表于 2020-2-29 22:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
foreach()有两种用法:
1:

foreach(array_name as $value){ 
        statement;
}

这里的array_name是你要遍历的数组名,每次循环中,array_name数组的当前元素的值被赋给$value,并且数组内部的下标向下移一步,也就是下次循环回得到下一个元素。

2:

foreach(array_name as $key => $value){        
       statement;     
}

这里跟第一种方法的区别就是多了个$key,也就是除了把当前元素的值赋给$value外,当前元素的键值也会在每次循环中被赋给$key。键值可以是下标值,也可以是。比如book[0]=1中的“0”,book[id]="001"中的“id”.

来看看第二种格式,第二种格式除了能像第一种格式一样得到数组内元素的值外,还能得到元素的值,并保存到$key变量中,如果数组的索引值未经过人工设定,则返回系统默认的设定值,
看正面例子:
先看一个简单的:

$myArray=array("1"=>"val1","2"="val2","3"=>"val3");
foreach
($myArray as $key=>$val) {
     print($key."=>".$val.";");
}

该程序将出输出:1=>val1;2=>val2;3=>val3;,接下来我们再来看一个复杂一点的遍历,程序如下:

$myArray=array(
     "1"=>array("11"=>"val11","12"=>"val12","13"=>"val13"),
     "2"=>array("21"=>"val21","22"=>"val22","23"=>"val23"),
     "3"=>array("31"=>"val31","32"=>"val32","33"=>"val33")
);
print("<ul>");
foreach(
$myArray as $key=>$val) {
     print("<li>".$key."</li>");
     if (is_array($val)) {     //判断$val的值是否是一个数组,如果是,则进入下层遍历
         print("<ul>");
        foreach
($val as $key=>$val) {
             print("<li>".$key."=>".$val."</li>");
         }
         print("</ul>");
     }
}
print("</ul>");

输出结果:

  • 1

    • 11=>val11

    • 12=>val12

    • 13=>val13

  • 2

    • 21=>val21

    • 22=>val22

    • 23=>val23

  • 3

    • 31=>val31

    • 32=>val32

    • 33=>val33

<ul> 和 <li>是 标签,作用是显示个实心小圆点和空心小圆点。
由于上面的是一个二维数组,在第一次遍历后所得到的$val值将是一个数组,所以我在遍历中加了一个判断,以便进行二层数组遍历。

分享到:  QQ好友和群QQ好友和群
收藏收藏
回复

使用道具 举报

0

主题

22

帖子

72

积分

注册会员

Rank: 2

积分
72
沙发
发表于 2022-8-31 20:06 | 只看该作者
免费源码网站推荐
回复

使用道具 举报

一起源码让程序更轻更快

www.171739.xyz

工作时间 周一至周六 8:00-17:30

侵权处理

客服QQ点击咨询

关注抖音号

定期抽VIP

Copyright © 2016-2021 https://www.171739.xyz/ 滇ICP备13200218号

快速回复 返回顶部 返回列表