foreach的基本语法(收录)

本文详细介绍了 PHP 中的 foreach 循环语法及其使用方法,包括单维和多维数组的遍历,并提供了多个示例帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 foreach基本语法如下: 
FOREACH ($array_variable as $value) 

[code to execute] 

or 
FOREACH ($array_variable as $key => $value) 

[code to execute] 

在这两种情况下,多次[代码执行]将被处死是等于在$ array_variable数组元素的个数。 
让我们来看一个例子。假设我们有下面的代码段: 

复制代码代码如下:

$array1 = array(1,2,3,4,5); 
FOREACH ($array1 as $abc) 

print "new value is " . $abc*10 . "<br>"; 


输出结果 
new value is 10 
new value is 20 
new value is 30 
new value is 40 
new value is 50 
foreach循环以上经历了所有5个元素的数组$ array1,每次打印出一份声明中含有10倍的数组元素的值。 
foreach作用是遍历当前数组的所有值出来并且赋给$var 
官方给出的实例代码: 

复制代码代码如下:

<?php 
/* foreach example 1: value only */ 
$a = array(1, 2, 3, 17); 
foreach ($a as $v) { 
echo "Current value of /$a: $v./n"; 

/* foreach example 2: value (with key printed for illustration) */ 
$a = array(1, 2, 3, 17); 
$i = 0; /* for illustrative purposes only */ 
foreach ($a as $v) { 
echo "/$a[$i] => $v./n"; 
$i++; 

/* foreach example 3: key and value */ 
$a = array( 
"one" => 1, 
"two" => 2, 
"three" => 3, 
"seventeen" => 17 
); 
foreach ($a as $k => $v) { 
echo "/$a[$k] => $v./n"; 

/* foreach example 4: multi-dimensional arrays */ 
$a = array(); 
$a[0][0] = "a"; 
$a[0][1] = "b"; 
$a[1][0] = "y"; 
$a[1][1] = "z"; 
foreach ($a as $v1) { 
foreach ($v1 as $v2) { 
echo "$v2/n"; 


/* foreach example 5: dynamic arrays */ 
foreach (array(1, 2, 3, 4, 5) as $v) { 
echo "$v/n"; 

?> 


再来看一个foreach 对多维数据操作实例 

复制代码代码如下:

$s = array(array(1,2),array(3,4),array(5,6)); 
foreach( $s as $v => $_v ) 

foreach( $_v as $vc => $_vc ) 

echo $_vc[0],'|'.$_vc[1],'<br />'; 
//print_r($_vc); 


先来看一下foreach的语法: 

复制代码代码如下:

foreach ($array as $key=>$value) 

…… 


为了便于理解,我们假定这里的$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执行了一个我们看不见的操作:next($array),将数组指针向前(这里的“向前”跟PHP手册相同,不是我们通常所理解的“向前”)移一。然后echo语句输出"first=>ibm"。 
第二次循环,首先会判断数组$array的当前指针是否已经到了数组的末尾,如果是,结束循环,否则进入第二次循环。当然这样的判断在进入第一次循环的时候也会有,如果$array是一个空数组,那么就会直接执行循环下面的语句。此时,$key = 'second','value' = 'hp',next($array)后,输出"second=>hp"。然后进行判断,数组指针已经到达末尾,执行下面的语句。 
到这里你应该对foreach循环有所了解了吧?还有一点需要的是,foreach每次只是传递一个值,而不是真的对数组元素进行操作。具体到上面的例子,如果你想在每个数组元素的后面加上 'company' 这个字符串,那么$value .= 'company'这样的操作是不行的,它并不会改变数组元素的值,这个时候你应该这样用:$array[$key] .= 'company'

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值