最新公告
  • 欢迎您光临波比源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • php数组的遍历函数与方法例子

    php中数组遍历方法有很多种,如有:for,foreach,while(),list(),each()这些函数与方法都要我们在数组遍历中会用到的,下面给大家介绍一下.

    1. 使用for语句循环遍历数组

    a. 其它语言(只有这一种方式) 

    b. PHP中这种方式不是我们首选方式 

    c. 数组必须是索引数组,而且下标还必须是连续的 索引数组下标还可以不连序,数组还有关联数组)

    PHP实例代码如下:

    1. <?php 
    2. /* 
    3. * 我们想要在遍历的过程中改变以下数组中某些元素的值 
    4. */ 
    5. $people = Array( 
    6. Array(’name’ => ‘Kalle’, ’salt’ => 856412), 
    7. Array(’name’ => ‘Pierre’, ’salt’ => 215863) 
    8. ); 
    9. for($i = 0; $i < sizeof($people); ++$i
    10. $people[$i]['salt'] = rand(000000, 999999); 
    11. ?> 

    以上代码的问题,在于for的第二个表达式会导致代码执行很慢--因为每次循环时都要 计算一遍数组的长度,由于数组的长度始终不变,我们可以用一个中间变量来存储数组长度,然后用这个变量作为for循环的第二个表达式,这样在循环的时候就可以直接使用该变量的值,不用每次重新计算,代码如下:

    1. <?php 
    2. $people = Array( 
    3. Array(’name’ => ‘Kalle’, ’salt’ => 856412), 
    4. Array(’name’ => ‘Pierre’, ’salt’ => 215863) 
    5. ); 
    6. for($i = 0, $size = sizeof($people); $i < $size; ++$i
    7. $people[$i]['salt'] = rand(000000, 999999); 
    8. ?> 

    2.使用foreach语句循环遍历数组

    1. foreach(数组变量 as 变量值){  
    2.  循环体  

    a.循环次数由数组的元素个数决定 

    b.每一次循环都会将数组中的元素分别赋值给后面变量

    1. foreach(数组变量 as 下标变量=> 值变量){ 

    foreach遍历3维数组:

    1. //foreach循环一个3维数组 
    2. /* 
    3. $biaoge=array
    4. "市场部"=>array
    5. array(1,"gaomou1","jingli11",4000), 
    6. array(2,"gaomou2","jingli22",4000), 
    7. array(3,"gaomou3","jingli33",4000) 
    8.  ), 
    9. "客服部"=>array
    10. array(1,"gao1","li11",4000), 
    11. array(2,"gao2","li22",4000), 
    12. array(3,"gao3","li33",4000) 
    13. ), 
    14. "业务部"=>array
    15.  array(1,"mou1","jing11",4000), 
    16.  array(2,"mou2","jing22",4000), 
    17.  array(3,"mou3","jing33",4000) 
    18.  ); 
    19. foreach($biaoge as $key=>$value){ 
    20. echo '<table align="center" width="600" border="1">'
    21. echo '<caption>联系表</caption>'
    22. echo '<tr bgcolor="#dddddd">'
    23. echo '<th>标号</th><th>名字</th><th>职位</th><th>工资</th></tr>'
    24. foreach($value as $row){ 
    25. if($row%2==0){ 
    26. $bg="#ffffff"
    27.  }else
    28.  $bg="#dddddd"
    29.  } 
    30.  echo '<tr bgcolor='.$bg.'>'
    31.  foreach($row as $col){ 
    32.  echo '<td>'.$col.'</td>'
    33.  } 
    34.  echo '</tr>'
    35. echo '</table>'
    36.  } 
    37. echo "<pre>"
    38. print_r($biaoge); 
    39. echo "</pre>"

    3. while() list() each() 组合循环遍历数组

    each()函数.

    a. 需要一个数组作为参数 

    b. 返回来的也是一个数组 

    c. 返回来的数组是0, 1, key, value四个下标(固定的)

    0和key下标是当前参数数组元素的?

    1和value下标是当前对数数组元素的值

    d. 默认认当前元素就是第一个元素 

    e. 每执行一次后就会将当前元素向后移动 

    f. 如果到最后的元素再执行这个函数,则返回false

    使用each遍历数组的示例代码如下:

    1. <?php 
    2. //使用each函数遍历数组 
    3. $arrGoogle=array('google','Gmail','Chrome','Android'); 
    4. //第一次使用each取得当前键值对,并且将指针移到下一个位置 
    5. $arrG=each($arrGoogle); 
    6. //打印结果,并且换行以清晰显示结果 
    7. print_r($arrG); 
    8. print '<br>'
    9. $arrGmail=each($arrGoogle); 
    10. print_r($arrGmail); 
    11. print '<br>'
    12. $arrChrome=each($arrGoogle); 
    13. print_r($arrChrome); 
    14. print '<br>'
    15. $arrAndroid=each($arrGoogle); 
    16. print_r($arrAndroid); 
    17. print '<br>'
    18. //当指针位于数组末尾再次执行函数each,如果是这样再次执行结果返回false 
    19. $empty=each($arrGoogle); 
    20. //如果指针无法继续后移返回false 
    21. if($empty==false){ 
    22. print '指针以位于数组末尾,无法在向后移,故返回false'
    23. ?> 

    注意:该函数的参数和返回值(在执行该函数前指针不位于数组末尾时)都为数组,在执行函数前数组指针位于数组末尾时再次执行该函数返回值为false,开始的位置是第一个元素,每(正常)执行一次该函数,指针向后移到下一个地址.

    list()函数

    a. list()=array(); 需要将一个数组赋值给这个函数 

    b. 数组中的元素个数,要和list()函数中的参数个数相同 

    c. 数组中的每个元素值会赋值list()函数中的每个参数,list()将每个参数转为变量 

    d. list()只能接收索引数组 

    e. 按索引的下标的顺序

    这不是真正的函数,而是PHP的语言结构,list()用一步操作给一组变量进赋值,即把数组中的值赋给一些变量,list()仅能用于数字索引的数组并假定数字索引从0开始,语法格式如下所示:

    list(mixed varname,mixed …)=array_expression  //list()语句的语法格式

    list()语句和其它函数在使用上有很大的区别,并不是直接接收一个数组作为参数,而是通过“=”去处符以赋值的方式,将数组中每个元素的值,对应的赋给list()函数中的每个参数,list()函数又将它中的每个参数转换为直接可以在脚本中使用的变量,使用方法如下:

    1. <?php 
    2. $info=array('coffee','brown','caffeine');              //声明一个索引数组$info 
    3.  
    4. list($drink,$color,$power)=$info;                      //将数组中的所有元素转为变量 
    5. echo "$drink is $color and $power makes it special.n";//输出的三个变量值是数组中三个元素的值 
    6.  
    7. list($drink, ,$power)=$info;                           //将数组中的部分元素变为变量 
    8. echo "$drink has $power.n";                           //输出的两个变更值是数组中的前两个元素的值 
    9.  
    10. list(,,$power)=$info;                                  //跳过前两个变量只将数组中第三个元素的值转为变量 
    11. echo "I need $power!n";                               //输出的一个变量值是数组中桃花汛三个元素的值勤 
    12. ?> 

    通过上例了解list()函数的用法之后,将each()函数和list()函数结合起来使用,代码如下:

    1. <?php 
    2. $contact=array("ID"=>1,"姓名"=>"高某","公司"=>"A公司","地址"=>"北京市"); 
    3. list($key,$value)=each($contact);           //将each()函数和list()函数联合使用 
    4. echo "$key=>$value";      //输出变量$key和$value,中间使用"=>"分隔 
    5. ?> 

    while() 函数

    while()循环的语法格式如下:

    1. while( list($key,$value) = each(array_expressin) ){ 
    2.        循环体; 

    使用这种组合改写前面使用foreach遍历过的一维数组,代码如下所示:

    1. <?php 
    2.  //声明一个一维的关联数组$contact 
    3.  $contact=array("ID"=>1, 
    4.   "姓名"=>"高某"
    5.   "公司"=>"A公司"
    6.   "地址"=>"北京市"
    7.   "电话"=>"(010)987665432"
    8.   "EMAIL"=>"gao@php.com" 
    9.  ); 
    10.  //以HTML列表的方式输出数组中每个元素的信息 
    11.  echo '<dl>一个联系人信息:'
    12.  while(list($key,$value) = each($contact) ){      //将foreach语句改写成while,list()和each()的组合 
    13.   echo "<dd>$key:$value</dd>";                 //输出每个元素的键/值勤 
    14.   } 
    15.  echo '</dl>'
    16. ?> 

    while() 遍历数据是需要结合list或each函数配置才可以遍历,否则它单独是无法完成数组遍历的.

    波比源码 – 精品源码模版分享 | www.bobi11.com
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

    波比源码 » php数组的遍历函数与方法例子

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    波比源码
    一个高级程序员模板开发平台
    升级波友尊享更多特权立即升级