• 沙里软件

  • ShaliSoft.com [手机站]   办公桌收纳抽屉
  • 首页
  • 博文
  • 演示
  • 管理
  • PHP遍历数组

    网络   2013/9/26 21:50:48

    foreach

    PHP代码:
    1. <?php
    2. $url= array('新浪' =>'www.sina.com' ,
    3. '雅虎' =>'www.yahoo.com' ,
    4. '网易' =>'www.163.com' ,
    5. '腾讯' =>'www.qq.com' ,
    6. '百度' =>'www.baidu.com'
    7. );
    8. foreach($urlas$link){
    9. echo$link.'<br><br>' ;
    10. }
    11. ?>


      上面的代码中我们用到了 foreach语句,这是一个用来遍历数组中数据的最简单有效的方法。

    foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。


    第一种语法:

    foreach (array_expression as $value) statement

    这种格式遍历给定的 array_expression 数组,as 是关键词。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。statement 是后续操作,如果有多个语句,你可以象上例那样采用大括号包含。

    上例中,我们循环读取数组$url 中的每个单元,并且每次都把该单元的值赋值给变量$link ,再echo 打印输出这个$link 的值,然后再进行下一次循环直到数组中不再有数据。

    你动手试了吗?如果你试了,看到输出结果是不是觉得很有趣呢?我知道一会儿你就又有疑问了:为什么没有“新浪”“网易”这样的站名呢?要怎样做才能得到呢?

    在$url 数组定义中,“新浪”“网易”等都是作的键名而不是数组的值,我们的第一种语法只是循环取得数组中每个值。如果要得到数组的键名,可以采用第二种语法:

    第二种语法:

    foreach (array_expression as $key => $value) statement

    第二种格式做同样的事,只除了当前单元的键值也会在每次循环中被赋给变量 $key 。

    例如10-2:


    PHP代码:
    1. <?php
    2. $url= array('新浪' =>'www.sina.com' ,
    3. '雅虎' =>'www.yahoo.com' ,
    4. '网易' =>'www.163.com' ,
    5. '腾讯' =>'www.qq.com' ,
    6. '百度' =>'www.baidu.com'
    7. );
    8. foreach($urlas$site=> $link){
    9. echo"<a href=http://$link>$site</a><br><br>" ;
    10. }
    11. ?>


    $site 得到键值(如“新浪 ”),$link 得到该单元的值(如“www.sina.com ”),我在中间夹了一些HTML代码,相信你会看懂的。下面我再加点东西你能看懂吗?例10-3:

    PHP代码:
    1. <?php
    2. $url= array('新浪' =>'www.sina.com' ,
    3. '雅虎' =>'www.yahoo.com' ,
    4. '网易' =>'www.163.com' ,
    5. '腾讯' =>'www.qq.com' ,
    6. '百度' =>'www.baidu.com'
    7. );
    8. $n= 0;
    9. foreach($urlas$site=> $link){
    10.  ++$n;
    11. echo"第 $n  名:<a href=http://$link>$site</a><br><br>" ;
    12. }
    13. ?>


    注:当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset() 。

    注:此外注意 foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。因此即使有 each() 的构造,原数组指针也没有变,数组单元的值也不受影响。

    注:foreach 不支持用“@”来禁止错误信息的能力。


    阅读(3724) 分享(0)

    上一篇: PHP的事务处理 MYSQL
    下一篇: Linux关闭户远程登录方法

  • 精彩推荐

    ◆ MySQL配置优化
    ◆ WINDOWS 2003 IIS6 支持SHA256。基础连接已经关闭 发送时发生错误修复
    ◆ sql2000增加序号列,自动增加列,ROW_NUMBER()
    ◆ SQL set statistics命令
    ◆ Google Analytics与百度统计的原理
    ◆ OutputCache 缓存 VaryByCustom的使用,增加缓存后手机端无法做判断的处理
    ◆ SQLSERVER数据库检查DBCC CheckDB
    ◆ 为什么mysql使用SELECT*比SELECT字段 查询速度还快
    ◆ 谷歌镜像网站大全 google翻墙地址大全
    ◆ 携程全线瘫痪,传言代码被恶意删除
  • 用心做事 不能唯利是图

    • 吊儿
    • 用QQ联系我17905772
  • 搜索


  • 最新文章

    • 导出Excel 格式 mso-number-format
    • 服务器iis支持tls1.2,windows server 2008 r2 中IIS启用TLS 1.2(安装SSL后用TLS 1.2)
    • MySQL配置优化
    • EditPlus 添加文件比较工具winmerge
    • 滚动悬浮固定JS特效

  • 热门文章

    • php sso单点登录实现代码
    • 中国菜刀(China chopper) 最新黑客工具
    • redis.conf中文版(基于2.4)
    • 搜索引擎名单大全
    • php图片上传类,支持加水印,生成略缩图

  • 最新图库


  • 最新评论


  • 友情链接

  • 沙里软件

  • 最近访客

    Powered by ShaliSoft.com 豫ICP备13008529号

    免责声明:本站部分内容来源于互联网,转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责,也不构成任何其他建议。如果发现侵犯版权,联系QQ17905772进行删除。