foreach


foreach

PHP 4 引入了 foreach 结构,和 Perl 以及其他语言很像。这只是一种遍历数组简便方法。foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。

第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key

自PHP 5 起,还可能遍历对象

Note:

foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()

Note:

除非数组是被引用,foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。foreach对数组指针有些副作用。除非对其重置,在 foreach 循环中或循环后都不要依赖数组指针的值。

自 PHP 5 起,可以很容易地通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。 <?php
$arr 
= array(1234);
foreach (
$arr as &$value) {
    
$value $value 2;
}
// $arr is now array(2, 4, 6, 8)
?>
此方法仅在被遍历的数组可以被引用时才可用(例如是个变量)。 <?php
foreach (array(1234) as &$value) {
    
$value $value 2;
}

?>

Warning

Reference of a $value and the last array element remain even after the foreach loop. It is recommended to destroy it by unset().

Note:

foreach 不支持用“@”来抑制错误信息的能力。

用户可能注意到了以下的代码功能完全相同: <?php
$arr 
= array("one""two""three");
reset($arr);
while (list(, 
$value) = each($arr)) {
    echo 
"Value: $value<br> ";
}

foreach (
$arr as $value) {
    echo 
"Value: $value<br /> ";
}
?>
以下代码功能也完全相同: <?php
$arr 
= array("one""two""three");
reset($arr);
while (list(
$key$value) = each($arr)) {
    echo 
"Key: $key; Value: $value<br /> ";
}

foreach (
$arr as $key => $value) {
    echo 
"Key: $key; Value: $value<br /> ";
}
?>

示范用法的更多例子: <?php
/* foreach example 1: value only */

$a = array(12317);

foreach (
$a as $v) {
   echo 
"Current value of $a: $v. ";
}

/* foreach example 2: value (with its manual access notation printed for illustration) */

$a = array(12317);

$i 0/* for illustrative purposes only */

foreach ($a as $v) {
    echo 
"$a[$i] => $v. ";
    
$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. ";
}

/* 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 ";
    }
}

/* foreach example 5: dynamic arrays */

foreach (array(12345) as $v) {
    echo 
"$v ";
}
?>


«  for
» break
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 游上海世博,话环保低碳作文500字 送给老师的花 招工启事范本 银行行长述职报告范文三篇 春姑娘来了500字 无言的孝是最美的 学生会述职报告范文 理财经典名言句子_理财名言警句精选 落花-连理枝头花正开 生命挽歌 《根鸟》精彩好词好句摘抄 作文垒高自己 美好的日子550字 关于自动铅笔的作文 蝉蜕悲伤 高考冲刺:高考前一个月营养食谱 在你的冷漠背后,是我无尽的伤感 我的可爱玩具 有一种魅力无形的吸引 原来,只有我一个人不习惯。 爱情的到来,如同绽放的罂粟花 我们真的快乐吗?作文350字 集团2015年优秀通讯员表彰会发言稿 一粒米饭,在乎作文500字 过去的时光作文 大秦帝国 厚黑学处世经——以黑反黑法2 45°星空看幸福作文250字 阳春颂作文700字 成长的痕迹(续) 勇敢的追寻作文700字 寒雪儿 2013房屋租赁合同范本(标准版) 2014年pep四年级上册英语Unit 2 My schoolbag复习资料 学习是什么 不要让自己活得太累,人活得太累的10个原因 名著手抄报版面设计图 岁月的温泉 小学五年级作文1000字:好心情 我的自行车作文400字 父爱 如果那天没有遇到你~作文300字 看烟花作文400字 扣心的回忆 小学五年级作文550字:征服“大汉峰” 美丽的小河250字 受上帝眷恋的人作文600字 轮回父女情 会议活动要适应不同口味 《唐山大地震》读后感

Copyright © 2016 phpStudy |