加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 钦州站长网 (https://www.0777zz.com/)- 智能办公、应用安全、终端安全、数据可视化、人体识别!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用foreach循环可以处理一二维数组的PHP特定的function

发布时间:2023-11-11 10:32:07 所属栏目:PHP教程 来源:互联网
导读:   foreach有两种用法:



  一、



   foreach(arr_name as $value)



   {



   statement;



   }



  解析:arr_name是要遍
  foreach有两种用法:
 
  一、
 
    foreach(arr_name as $value)  
 
    {     
 
          statement;  
 
     }
 
  解析:arr_name是要遍历的数组名。每次循环,arr_name数组当前元素的值都被赋给$value,而且数组内部下标也要下移一个,也就是说下次循环得到的将是下一个元素
 
  二、
 
  foreach(arr_name as $key => $value)  
 
   {      
 
          statement;    
 
  }
 
  解析:与第一个的不同是,这个除了吧当前元素的值赋给$value外,每次循环当前元素的键值也会被赋给$key , 键值可能是下标或字符串。如row[0]=1中的"0”,row[id]="001"中的"id”.其中0与id都是键值
 
  先来看第一个语句,这个语句比较简单,array_expression指的是一个数组表达式,as $val语句将顺序取得该数组的值并保存到$val变量中,此种方法只能取得数组内的值,而不能取得数组的下标索引值。例如:
 
   代码如下
 
  1 $myArray=array("1"=>"val1","2"=>"val2","3"=>"val3");
 
  foreach($myArray as $val) {
 
      echo $val."
 
  ";
 
  }
 
  执行结果:
 
  val1
 
  val2
 
  val3
 
  再来看看第二种格式,第二种格式除了能像第一种格式一样得到数组内元素的值外,还能得到元素的索引值,并保存到$key变量中,如果数组的索引值未经过人工设定,则返回系统默认的设定值。
 
  先看一个简单的一维数组:
 
   代码如下
 
  1 $myArray=array("1"=>"val1","2"=>"val2","3"=>"val3");
 
  foreach($myArray as $key=>$val) {
 
      echo $key."=>".$val."
 
  ";
 
  }
 
  执行结果:
 
  1=>val1
 
  2=>val2
 
  3=>val3
 
  接下来我们再来看一个复杂一点的二维数组遍历,程序如下:

   代码如下
 
  1 $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")
 
  );
 
  echo "
 
  ";
 
  foreach($myArray as $key=>$val) {
 
      echo "
 
  ".$key."
 
  ";
 
      //判断$val的值是否是一个数组,如果是,则进入下层遍历
 
      if (is_array($val)) {     
 
          echo "
 
  ";
 
              foreach($val as $key=>$val) {
 
              echo "
 
  ".$key."=>".$val."
 
  ";
 
          }
 
          echo "
 
  ";
 
      }
 
  }
 
  echo "
 
  ";
 
  执行结果:
 
  和
 
  是 标签,作用是显示个实心小圆点和空心小圆点。 由于上面的是一个二维数组,在第一次遍历后所得到的$val值将是一个数组,所以我在遍历中加了一个判断,以便进行二层数组遍历。
 
  再通过一个实例解惑:
 
   代码如下
 
  1 $a = array("1"=>"语文","2"=>"数学","3"=>"英语");
 
  $b = array("1"=>"95","2"=>"99","3"=>"92");
 
  foreach($a as $key=>$value){
 
      echo $value;
 
      echo $b[$key]."
 
  ";
 
  }
 
  执行结果:
 
  语文95
 
  数学99
 
  英语92
 
  问题是为什么输出数组$b中的值要用$b[$key]而不是$b[$value]? why?
 
   代码如下
 
  1 $a = array("1"=>"语文","2"=>"数学","3"=>"英语");
 
  上面这个和下面这个是完全一样的
 
  $a[1]="语文";
 
  $a[2]="数学";
 
  $a[3]="英语";
 
  我们输出上面的数组元素是怎么输出的呢? 肯定是 

  echo $a[1];
 
  echo $a[2];
 
  echo $a[3];
 
  对不对?简单说foreach 它的格式是这样的
 
  foreach(数组名 as 下标=>值)
 
  下标也就是上面的$a[1],这里的1就是数组的下标! 到这你应该明白了,为什么是$a[$key]这样输出。
 
  好了到这里关于php foreach就介绍完了,foreach只能遍历一二维数组了,如果是三维数组我们需要进行递归操作了。
 

(编辑:PHP编程网 - 钦州站长网)

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

    推荐文章