$val) { pr"> $val) { print($">

php之foreach语句

 

php之foreach语句

 

php中的foreach语句主要用来操作数组(在php5中还可以用来操作对象),它有两种格式,分别如下:

一:

foreach (array_expression as $val) {
     print($val.";");
     ......
}


二:

foreach (array_expression as $key=>$val) {
     print($key."=>".$val.";");
     ......
}


习惯了asp的朋友一定会郁闷了,可能忍不住会说:这啥玩意,看得人云里雾里。没错,我当初也一样,习惯了asp的写法,怎么看这东东怎么不顺眼,以致于有一段时间甚至让我对php产生了一种抵触情绪,不过不用怕,现在我们来将它慢慢的剖开,看看这个语句到底是如何使用的。

先来看第一个语句,这个语句比较简单,可以说跟asp中的for each大同小异,array_expression指的是一个数组表达式,as $val语句将顺序取得该数组的值并保存到$val变量中,此种方法只能取得数组内的值,而不能取得数组的下标索引值。例如:

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

其结果会输出:val1 val2 val3


再来看看第二种格式,第二种格式除了能像第一种格式一样得到数组内元素的值外,还能得到元素的索引值,并保存到$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>");

由于上面的是一个二维数组,在第一次遍历后所得到的$val值将是一个数组,所以我在遍历中加了一个判断,以便进行二层数组遍历。大家仔细看下,就能看懂,很简单的,不要被上面那些乱七八糟的字符所吓到了,呵呵。如果有条件,你还可以把它们复制到本地phpserver上运行下,看看效果,再分析,这样就更容易明白了。

php中除了foreach,还有一些函数也可以用来方便的操作数组,如list(),each()等,待我有空慢慢说来。习惯了asp语法的朋友(如我),不妨在学习php时抛开asp的一惯作法,让自己的思维变成一张白纸,这样学起来便会快很多了,要不然你会发现,当要实现一种效果的时候,asp与php的编程思想便会在脑子里打架,让你痛苦不堪,呵呵。

 

注意:1,升级软件必须与当前产品型号和硬件版本一致的软件;2,升级过程中不能关闭路由器电源,否则可能导致路由器损坏;3,升级时请使用有线方式连接,不要使用无线方式连接。升级方法一:如果您路由器升级界面类似下图(含“TFTP服务器IP”字样): 请按以下步骤进行升级:1,关闭系统的防火墙,包括系统自带的防火墙以及您另外安装的防火墙软件。XP系统可按照以下步骤关闭系统自带防火墙:右击电脑的“本地连接”选择属性,然后再点击“高级”,再点击“设置”,进去后把防火墙关闭;2,双击打开升级包中的tftpd32.exe文件,并确保在整个升级过程中该软件均处于开启的状态;3,然后登录路由器管理界面,在“系统工具”-“软件升级”界面直接点击“升级”即可。升级过程中的几种常见错误提示:1,如果升级过程中出现类似“升级不成功,请检查您是否已经开启TFTP服务器。”的错误提示,请再一次检查您的升级操作是否正确。请确认是否有双击打开TFTPD32.EXE工具或是否关闭了操作系统的防火墙;2,如果升级过程中出现类似“文件传输错误,请检查输入是否正确。”的错误提示,请检查和确保升级界面中的“文件名”框中的内容与升级软件包中的.bin文件的文件名是一致的: 3,如果遇到 “升级不成功,传送的文件版本号有误,请检查文件名是否正确。”的错误提示,请确保您下载的升级文件是对应您路由器型号和硬件版本的。注意除了产品型号外,不同硬件版本也有不同的升级程序,您的产品硬件版本可以在升级页面中查看得到。升级方法二:如果您路由器升级界面如下图: 请按照以下步骤来升级:1,进入路由器的管理页面,然后进入“系统工具”->“软件升级”,点击“浏览”并选择要升级的.bin文件;2,点击升级,升级成功后会有提示信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值