Home >php教程 >php手册 >php foreach循环用法介绍

php foreach循环用法介绍

WBOY
WBOYOriginal
2016-06-13 09:47:451057browse

在php中foreach 语句用于循环遍历数组,每进行一次循环,当前数组元素的值就会被赋值给 value 变量(数组指针会逐一地向下移动)

 代码如下 复制代码

/* php foreach循环简单例子 */   
$a = array('a'=>'网上','b'=>'朋友','c'=>'其它',);   
// 这是一个hash数组,我们现在把内容输出   
foreach ($a as $key => $value) {   
    echo $key . '->' . $value . '
';   
}   
?>  
$a = array('a'=>'网上','b'=>'朋友','c'=>'其它',);


开始运行foreach第一次,这时 $key='a';$value='网上';
输出后第二次运行 这时 $key='b';$value='朋友';
输出后第三次运行 这时 $key='c';$value='其它';
这时数组已经到了尾部,退出循环


 代码如下 复制代码

1,"two"=>2,"three"=>3,"four"=>4);
foreach($array1 as $key=>$value)
{echo "KEY:$key value: $value n";}

$array2=array(5,6,7,8);
foreach($array2 as &$value)
{
$value=$value*2;
echo "$valuen";
}

?>

结果是

$array1=array("one"=>1,”two”=>2,”three”=>3,”four”=>4);
foreach($array1 as $key=>$value)
{echo “KEY:$key value: $value n”;}

$array2=array(5,6,7,8);
foreach($array2 as &$value)
{
$value=$value*2;
echo “$valuen”;
}

?>

为了便于理解,我们假定这里的$array是一个一维的相关数组,$key是数组的索引,$value是这个索引的值,它们的名字可以随意,之所以叫$key和$value是为了便于理解。为了能让你更好的理解foreach的工作过程,我们来创建一个数组:
$array = array('first'=>'ibm','second','hp');
现在我们模拟PHP服务用foreach对$array进行遍历:

 代码如下 复制代码
foreach ($array as $key=>$value)
{
echo $key.'=>'$value;
}

第一次循环,$key = 'first',$value = 'ibm',这个时候,实际foreach对$array执行了一个我们看不见的操作

foreach循环中使用引用要注意

发现了一个容易出错,但是不懂得原理却解释不明白的问题

 代码如下 复制代码
foreach ($array as &$row) {
$row = explode(‘/’, $row);
}
foreach ($array as $row) {
//do something
}

这么写,在第二个循环会出逻辑错误,加入第二个循环中do something的地方是输出$row,循环到最后一个的时候的输出是倒数第二个元素,而不是最后一个

要这么写

 代码如下 复制代码

foreach ($array as &$row) {
$row = explode(‘/’, $row);
}
unset($row);
foreach ($array as $row) {
//do something
}

或者第一个循环这么写

foreach ($array as $key => $row) {
$array[$key] = explode(‘/’, $row);
}

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn