加入收藏 | 设为首页 | 会员中心 | 我要投稿 梧州站长网 (https://www.0774zz.cn/)- 云原生、分布式云、媒体处理、业务安全、数据可视化!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php数组的遍历函数与方法例子

发布时间:2022-07-24 11:35:02 所属栏目:PHP教程 来源:互联网
导读:php中数组遍历方法有很多种,如有:for,foreach,while(),list(),each()这些函数与方法都要我们在数组遍历中会用到的,下面给大家介绍一下. 1. 使用for语句循环遍历数组 a. 其它语言(只有这一种方式) b. PHP中这种方式不是我们首选方式 c. 数组必须是索引数组
  php中数组遍历方法有很多种,如有:for,foreach,while(),list(),each()这些函数与方法都要我们在数组遍历中会用到的,下面给大家介绍一下.
 
  1. 使用for语句循环遍历数组
 
  a. 其它语言(只有这一种方式)
 
  b. PHP中这种方式不是我们首选方式
 
  c. 数组必须是索引数组,而且下标还必须是连续的 索引数组下标还可以不连序,数组还有关联数组)
 
  PHP实例代码如下:
 
  <?php
  /*
  * 我们想要在遍历的过程中改变以下数组中某些元素的值
  */
  $people = Array(
  Array(’name’ => ‘Kalle’, ’salt’ => 856412),
  Array(’name’ => ‘Pierre’, ’salt’ => 215863)
  );
  for($i = 0; $i < sizeof($people); ++$i)
  {
  $people[$i]['salt'] = rand(000000, 999999);
  }
  ?>
  以上代码的问题,在于for的第二个表达式会导致代码执行很慢--因为每次循环时都要 计算一遍数组的长度,由于数组的长度始终不变,我们可以用一个中间变量来存储数组长度,然后用这个变量作为for循环的第二个表达式,这样在循环的时候就可以直接使用该变量的值,不用每次重新计算,代码如下:
 
  <?php
  $people = Array(
  Array(’name’ => ‘Kalle’, ’salt’ => 856412),
  Array(’name’ => ‘Pierre’, ’salt’ => 215863)
  );
  for($i = 0, $size = sizeof($people); $i < $size; ++$i)
  {
  $people[$i]['salt'] = rand(000000, 999999);
  }
  ?>
  2.使用foreach语句循环遍历数组
 
  foreach(数组变量 as 变量值){  
   循环体  
  }
  a.循环次数由数组的元素个数决定
 
  b.每一次循环都会将数组中的元素分别赋值给后面变量
 
  foreach(数组变量 as 下标变量=> 值变量){
  }
  foreach遍历3维数组:
 
  //foreach循环一个3维数组
  /*
  $biaoge=array(
  "市场部"=>array(
  array(1,"gaomou1","jingli11",4000),
  array(2,"gaomou2","jingli22",4000),
  array(3,"gaomou3","jingli33",4000)
   ),
  "客服部"=>array(
  array(1,"gao1","li11",4000),
  array(2,"gao2","li22",4000),
  array(3,"gao3","li33",4000)
  ),
  "业务部"=>array(
   array(1,"mou1","jing11",4000),
   array(2,"mou2","jing22",4000),
   array(3,"mou3","jing33",4000)
  )
   );
  foreach($biaoge as $key=>$value){
  echo '<table align="center" width="600" border="1">';
  echo '<caption>联系表</caption>';
  echo '<tr bgcolor="#dddddd">';
  echo '<th>标号</th><th>名字</th><th>职位</th><th>工资</th></tr>';
  foreach($value as $row){
  if($row%2==0){
  $bg="#ffffff";
   }else{
   $bg="#dddddd";
   }
   echo '<tr bgcolor='.$bg.'>';
   foreach($row as $col){
   echo '<td>'.$col.'</td>';
   }
   echo '</tr>';
  }
  echo '</table>';
   }
  echo "<pre>";
  print_r($biaoge);
  echo "</pre>";
  3. while() list() each() 组合循环遍历数组
 
  each()函数.
 
  a. 需要一个数组作为参数
 
  b. 返回来的也是一个数组
 
  c. 返回来的数组是0, 1, key, value四个下标(固定的)
 
  0和key下标是当前参数数组元素的?
 
  1和value下标是当前对数数组元素的值
 
  d. 默认认当前元素就是第一个元素
 
  e. 每执行一次后就会将当前元素向后移动
 
  f. 如果到最后的元素再执行这个函数,则返回false
 
  使用each遍历数组的示例代码如下:
 
  <?php
  //使用each函数遍历数组
  $arrGoogle=array('google','Gmail','Chrome','Android');
  //第一次使用each取得当前键值对,并且将指针移到下一个位置
  $arrG=each($arrGoogle);
  //打印结果,并且换行以清晰显示结果
  print_r($arrG);
  print '<br>';
  $arrGmail=each($arrGoogle);
  print_r($arrGmail);
  print '<br>';
  $arrChrome=each($arrGoogle);
  print_r($arrChrome);
  print '<br>';
  $arrAndroid=each($arrGoogle);
  print_r($arrAndroid);
  print '<br>';
  //当指针位于数组末尾再次执行函数each,如果是这样再次执行结果返回false
  $empty=each($arrGoogle);
  //如果指针无法继续后移返回false
  if($empty==false){
  print '指针以位于数组末尾,无法在向后移,故返回false';
  }
  ?> 

(编辑:梧州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读