一聚教程网:一个值得你收藏的教程网站

热门教程

PHP特定函数foreach遍历一二维数组

时间:2022-06-24 15:19:55 编辑:袖梨 来源:一聚教程网

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变量中,此种方法只能取得数组内的值,而不能取得数组的下标索引值。例如:
 

 代码如下 复制代码
$myArray=array("1"=>"val1","2"=>"val2","3"=>"val3");
 
foreach($myArray as $val) {
    echo $val."
";
}
执行结果:
val1
val2
val3

再来看看第二种格式,第二种格式除了能像第一种格式一样得到数组内元素的值外,还能得到元素的索引值,并保存到$key变量中,如果数组的索引值未经过人工设定,则返回系统默认的设定值。
先看一个简单的一维数组:
 

 代码如下 复制代码
$myArray=array("1"=>"val1","2"=>"val2","3"=>"val3");
foreach($myArray as $key=>$val) {
    echo $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")
);
 
echo "
    ";
    foreach($myArray as $key=>$val) {
        echo "
  • ".$key."
  • ";
        //判断$val的值是否是一个数组,如果是,则进入下层遍历
        if (is_array($val)) {    
            echo "
      ";
                  foreach($val as $key=>$val) {
                  echo "
    • ".$key."=>".$val."
    • ";
              }
              echo "
    ";
        }
    }
     
    echo "
";

执行结果:

热门栏目