php foreach用法和实例
原文地址:http://www.cnblogs.com/DaBing0806/p/4717718.html
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值将是一个数组,所以我在遍历中加了一个判断,以便进行二层数组遍历。
php foreach用法和实例的更多相关文章
- [转] php foreach用法和实例
PHP 4 引入了 foreach 结构,和 Perl 以及其他语言很像.这只是一种遍历数组简便方法.foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误.有两种 ...
- java中List的用法和实例详解
java中List的用法和实例详解 List的用法List包括List接口以及List接口的所有实现类.因为List接口实现了Collection接口,所以List接口拥有Collection接口提供 ...
- Smarty模板技术之foreach遍历数组实例全面讲解
一.item属性用法 <?php $arr = array(, , ); $smarty->assign('testarrg', $arr); ?> 用Smarty中的foreach ...
- 数组的foreach方法和jQuery中的each方法
/* * 数组的forEach方法: * 1.返回给回调的参数先是值,然后是下标 * 2.回调函数执行时内部的this指向window * */ /*var arr = [1,2,3,4,5]; ar ...
- nn.moduleList 和Sequential由来、用法和实例 —— 写网络模型
对于cnn前馈神经网络如果前馈一次写一个forward函数会有些麻烦,在此就有两种简化方式,ModuleList和Sequential.其中Sequential是一个特殊的module,它包含几个子M ...
- List 用法和实例(转载)
写在粘贴复制前:英文的感觉也可以,也能看的懂,多看看英文资料没坏处的 Problem. You have questions about the List collection in the .NET ...
- forEach遍历数组实例
forEach()取出数组中2的倍数和3的倍数的数 //for IE if(!Array.prototype.forEach){ Array.prototype.forEach = function( ...
- Matlab 之meshgrid, interp, griddata 用法和实例
http://blog.sina.com.cn/s/blog_67f37e760101bu4e.html 实例结果http://wenku.baidu.com/link?url=SiGsFZIxuS1 ...
- ES5 forEach()用法和提前终止遍历
forEach()方法从头到尾的遍历数组,为每个元素调用指定的函数,第一个参数接收的是一个函数,第二个参数是可选的,如果有第二个参数,则调用的函数被看作是第二个参数的方法(第二个参数可以作为第一个调用 ...
随机推荐
- 自动刷新 CSS文件
自动刷新 CSS文件 使用任何代码工具码 CSS,都是需要保存后再切换到浏览器按 F5 刷新查看效果,一次又一次,不管这个改动仅是一个小小的颜色.使用 CSSrefresh 后,改动 CSS 文件保存 ...
- kindeditor 上传下载文件
jsp代码 1 <script type="text/javascript" src="${pageContext.request.contextPath}/kin ...
- 使用Python实现的杨辉三角
def triangel(): print ' '*(20*3)+str(1) #定义起始两行 print ' '*(19*3)+str(1)+' '*5+str(1) for i in range( ...
- gradle学习记录
一.Gradle简介 Gradle是Android现在主流的编译工具,虽然在Gradle出现之前和之后都有对应更快的编译工具出现,但是Gradle的有时就在于它是亲儿子,Gradle确实比较慢,这和它 ...
- Python selenium自动化网页抓取器
(开开心心每一天~ ---虫瘾师) 直接入正题---Python selenium自动控制浏览器对网页的数据进行抓取,其中包含按钮点击.跳转页面.搜索框的输入.页面的价值数据存储.mongodb自动i ...
- vue-cli完整地引入element-ui
1因为该组件会依赖于jQuery,所以先安装jQuery所需依赖: 进入npm控制台,输入指令: cnpm install jquery --save-dev 然后在入口文件main.js中引入: i ...
- 深度优先搜索(DFS)专题讲座PPT截图【需要原稿的请留言或私信】
以下是今晚我在bilibili直播讲DFS算法的时候的ppt截图,ppt搞了一下午,水平有限,只能做成这个样子,供大家参考!(如果需要原稿,请在评论区留言或私信告诉我,我会发到你的邮箱里),感谢各位的 ...
- 51 Nod 1029 大数除法【Java大数乱搞】
1029 大数除法 基准时间限制:4 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 给出2个大整数A,B,计算A / B和A Mod B的结果. Input 第1行:大数A ...
- Vijos P1113 不高兴的津津【模拟】
不高兴的津津 描述 津津上初中了.妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班.另外每周妈妈还会送她去学习朗诵.舞蹈和钢琴.但是津津如果一天上课超过八个小时就会 ...
- C语言中%d,%p,%u,%lu等都有什么用处
%d 有符号10进制整数(%ld 长整型,%hd短整型 )%hu 无符号短整形(%u无符号整形,%lu无符号长整形)%i 有符号10进制整数 (%i 和%d 没有区别,%i 是老式写法,都是整型格式) ...