php学习笔记-foreach循环

顾名思义,foreach是for each的连写,不是for reach。意思就是对数组中的每个元素都要处理一次。

foreach只能用来处理数组。

有两种用法,先看第一种。

foreach(array as $value)
{
  func();  
}

解释一下上面的代码,既然foreach是用来处理数组的,那么肯定需要指定一个数组的名字,array就是存放数组名字的一个变量。后面的value变量是什么意思呢?由于foreach是要对数组中的每个元素都要处理一次,那么你肯定需要一个变量来存放数组中的元素,要不你怎么处理数据呢?OK,我们解释了array和value存在的意义,接着看一下foreach的执行逻辑。

foreach第一次执行的时候,已经有一个指针指向了array的第一个元素,然后把第一个元素取出来赋予给value变量,接下来开始执行循环体中的代码,在循环体中就可以用value变量中的值了,执行完循环体代码之后,PHP将指针移动到了下一个元素,然后就和之前的过程一样了,就这样一个一个的把数组中的元素取出来放到value中,在循环中你想用这个value的值你就用,不想用的话,下次循环值也被覆盖掉,直到指针移动到了数组的最后一个元素,这个指针就不移动了。

<?php

$names = array('chinese','math','english');

foreach($names as $temp)
{

    echo $temp . '<br>';
}

?>

 

再看第二种。

foreach(array as $key =>$value)
{
  func();  
}

第二种是用于关联数组的。对于关联数组我们比较关心它中的每个元素的名字和值,所以在foreach中需要两个变量来存放取得的每个元素的名字和值,key和value就是这两个变量,每次循环取得的元素名字和元素的值都被分别存放在key变量中和value变量中。

 1 <?php
 2 
 3 $names =array('a'=>'chinese','b'=>'math','c'=>'english');
 4 
 5 foreach($names as $temp1 => temp2)
 6 {
 7     echo $temp1 . '=>'. $temp2 . '<br>'; 
 8     
 9 }
10 
11 ?>

 

posted @ 2018-02-19 00:36  eatwhat  阅读(261)  评论(0编辑  收藏  举报