PHP - Manual手册 - 语言参考 - 控制结构 - foreach遍历数组
来源:互联网 发布:手机演奏软件 编辑:程序博客网 时间:2024/05/23 02:03
PHP - Manual手册 - 语言参考 - 控制结构 - 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 所操作的是指定数组的一个拷贝,而不是该数组本身。因此数组指针不会被 each() 结构改变,对返回的数组单元的修改也不会影响原数组。不过原数组的内部指针的确在处理数组的过程中向前移动了。假定 foreach 循环运行到结束,原数组的内部指针将指向数组的结尾。
自 PHP 5 起,可以很容易地通过在 $value 之前加上 & 来修改数组的单元。此方法将以引用赋值而不是拷贝一个值。此方法仅在被遍历的数组可以被引用时才可用(例如是个变量)。$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
?>
Note: foreach 不支持用“@”来抑制错误信息的能力。
用户可能注意到了以下的代码功能完全相同:
$arr = array("one", "two", "three");
reset($arr);
while (list(, $value) = each($arr)) {
echo "Value: $value
/n";
}
foreach ($arr as $value) {
echo "Value: $value
/n";
}
?>
$arr = array("one", "two", "three");
reset($arr);
while (list($key, $value) = each($arr)) {
echo "Key: $key; Value: $value
/n";
}
foreach ($arr as $key => $value) {
echo "Key: $key; Value: $value
/n";
}
?>
示范用法的更多例子:
/* 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遍历数组 - 文档]
http://www.php.net/manual/zh/control-structures.foreach.php
[PHP - 官方网站]
http://www.php.net/[PHP - 关键词]
php[PHP - 相关论坛]
http://php.board.newsmth.net/http://bbs.pku.edu.cn/, homepage看版
http://forum.csdn.net/SList/PHP/
[PHP - 下载]
AppServ 2.5.9, http://www.appservnetwork.com/Zend Optimizer 3.3.0a, http://www.zend.com/products/zend_optimizer
phpMyAdmin 2.11.2, http://www.phpmyadmin.net/home_page/index.php
Zend Core 2.5.0, http://www.zend.com/products/zend_core
Zend Platform 3.0.3, http://www.zend.com/products/zend_platform
PHP 5.2.5, http://www.php.net/releases/5_2_5.php
Zend Studio 5.5, http://www.zend.com/products/zend_studio
Zend Guard 5.0, http://www.zend.com/products/zend_guard
[PHP - Manual手册]
SOAP configuration options missing documentation文档中丢失SOAP配置选项, http://bugs.php.net/bug.php?id=38644
PHP 的命令行模式, http://www.php.net/manual/zh/features.commandline.php
位运算符, http://www.php.net/manual/zh/language.operators.bitwise.php#id2665181
file_exists检查文件或目录是否存在, http://www.php.net/manual/zh/function.file-exists.php
is_file判断给定文件名是否为一个正常的文件, http://www.php.net/manual/zh/function.is-file.php
settype设置变量的类型, http://cn.php.net/manual/zh/function.settype.php#function.settype
is_numeric检测变量是否为数字或数字字符串, http://www.php.net/manual/zh/function.is-numeric.php
ksort对数组按照键名排序, http://www.php.net/manual/zh/function.ksort.php
[PHP - Manual手册 - 下载]
http://www.php.net/download-docs.php[PHP - Manual手册 - 语言参考 - 类型]
字符串转换为数值, http://www.php.net/manual/zh/language.types.string.php#language.types.string.conversion
[PHP - Manual手册 - 第 12 章 变量]
全局和静态变量的引用, http://www.php.net/manual/zh/language.variables.scope.php#language.variables.scope.references
[PHP - Manual手册 - 第 13 章 常量]
魔术常量, http://www.php.net/manual/zh/language.constants.predefined.php
[PHP - Manual手册 - 第 15 章 运算符]
错误控制运算符, http://www.php.net/manual/zh/language.operators.errorcontrol.php
[PHP - Manual手册 - 语言参考 - 控制结构]
foreach遍历数组, http://www.php.net/manual/zh/control-structures.foreach.php
[PHP - Manual手册 - 语言参考 - 类与对象(PHP 5)]
Object cloning对象克隆, http://www.php.net/manual/zh/language.oop5.cloning.php Class Abstraction类抽象, http://www.php.net/manual/zh/language.oop5.abstract.php
[PHP - Manual手册 - 第20章 异常处理]
概述, http://www.php.net/manual/zh/language.exceptions.php
用异常处理php改进流程
[PHP - Manual手册 - 第21章 引用的解释]
引用返回, http://www.php.net/manual/zh/language.references.return.php
[PHP - Manual手册 - 第 43 章 PHP 的命令行模式]
表 43.2. CLI 专用常量, http://www.php.net/manual/zh/features.commandline.php#id2715646
[PHP - Manual手册 - V. Array 数组函数]
计算数组的交集, http://www.php.net/manual/zh/function.array-intersect.phparray_merge合并一个或多个数组, http://www.php.net/manual/zh/function.array-merge.php
reset将数组的内部指针指向第一个单元, http://www.php.net/manual/zh/function.reset.php
[PHP - Manual手册 - XVIII. CURL, 客户端URL库函数]
概述, http://www.php.net/manual/zh/ref.curl.php
curl_setopt设置cURL传输的选项, http://www.php.net/manual/zh/function.curl-setopt.php
[PHP - Manual手册 - XXII. Date/Time 日期/时间函数]
date格式化一个本地时间/日期, http://www.php.net/manual/zh/function.date.php[PHP - Manual手册 - XXXIII. Error Handling and Logging Functions错误处理和日志函数]
概述, http://www.php.net/manual/zh/ref.errorfunc.php [PHP - Manual手册 - XL. Filesystem 文件系统函数]
is_uploaded_file判断文件是否是通过 HTTP POST 上传的, http://www.php.net/manual/zh/function.is-uploaded-file.php
fgetcsv从文件指针中读入一行并解析 CSV 字段, http://www.php.net/manual/zh/function.fgetcsv.php
is_dir判断给定文件名是否是一个目录, http://www.php.net/manual/zh/function.is-dir.php
[PHP - Manual手册 - XLVII. Function Handling Functions函数管理函数]
register_shutdown_function注册一个脚本结束时调用的函数, http://www.php.net/manual/zh/function.register-shutdown-function.php
[PHP - Manual手册 - XC. Miscellaneous Functions杂项函数]
sleep延迟执行, http://www.php.net/manual/zh/ref.misc.php
uniqid生成唯一ID, http://www.php.net/manual/zh/function.uniqid.php
[PHP - Manual手册 - XCVIII. MySQL 函数]
mysql_real_escape_string转义SQL语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集, http://www.php.net/manual/zh/function.mysql-real-escape-string.php
[PHP - Manual手册 - CII. Network Functions网络函数]
setcookie发送一个cookie, http://www.php.net/manual/zh/function.setcookie.php
[PHP - Manual手册 - 函数参考 - PHP Options&Information - PHP选项与信息]
extension_loaded查询是否加载指定的扩展, http://www.php.net/manual/zh/function.extension-loaded.php
dl运行时加载PHP扩展, http://www.php.net/manual/zh/function.dl.php
[PHP - Manual手册 - CXXVII. PostgreSQL 数据库函数]
pg_insert将数组插入到表中, http://www.php.net/manual/zh/index.php[PHP - Manual手册 - CXXX. Program Execution Functions程序调用函数]
proc_open执行命令并打开用于输入输出的文件指针, http://www.php.net/manual/zh/function.proc-open.php
[PHP - Manual手册 - CXLIX. Session 会话处理函数]
session.save_path 定义了传递给存储处理器的参数, http://www.php.net/manual/zh/ref.session.php#ini.session.save-pathsession.use_only_cookies指定是否在客户端仅仅使用 cookie 来存放会话 ID, http://www.php.net/manual/zh/ref.session.php#ini.session.use-only-cookies
[PHP - Manual手册 - CLIII. SOAP Functions - SOAP函数]
soap.wsdl_cache_enabled启用或禁用WSDL缓存功能, http://www.php.net/manual/zh/ref.soap.php#ini.soap.wsdl-cache-enabled
[PHP - Manual手册 - CLXI. String 字符串处理函数]
str_pad使用另一个字符串将一个字符串填充到指定长度, http://www.php.net/manual/zh/function.str-pad.phpstrpos查找一个字符串第一次出现的位置, http://www.php.net/manual/zh/function.strpos.php
substr返回字符串中的一部分, http://www.php.net/manual/zh/function.substr.php
str_replace用替换字符串替换所有出现的搜索字符串, http://www.php.net/manual/zh/function.str-replace.php
[PHP - Manual手册 - CLXVI. Tidy Functions - Tidy函数]
概述, http://www.php.net/manual/zh/ref.tidy.php[PHP - Manual手册 - CLXVII. Tokenizer Functions解析器代号函数]
token_get_all把给定源代码分解成解析器代号, http://www.php.net/manual/zh/function.token-get-all.php
[PHP - Manual手册 - CLXIX. URL 函数]
概述, http://www.php.net/manual/zh/ref.url.php[PHP - Manual手册 - CLXX. Variable 变量函数]
serialize产生一个可存储的值的表示, http://www.php.net/manual/zh/function.serialize.php
[PHP - Manual手册 - CLXXXVII. Zip File Functions - Zip文件压缩函数]
概述, http://www.php.net/manual/zh/ref.zip.php[PHP - Manual手册 - 附录 H. php.ini 配置选项]
register_globals 决定是否将 EGPCS(Environment,GET,POST,Cookie,Server)变量注册为全局变量, http://www.php.net/manual/zh/ini.core.php#ini.register-globalsshort_open_tag决定是否允许使用PHP代码开始标志的缩写形式, http://www.php.net/manual/zh/ini.core.php#ini.short-open-tag
[PHP - Manual手册 - 附录 L. 保留字列表]
服务器变量:$_SERVER, http://www.php.net/manual/zh/reserved.variables.php#reserved.variables.server
[PHP - Manual手册 - 附录 Q. PHP 类型比较表]
表 Q.2. 用 == 进行松散比较, http://www.php.net/manual/zh/types.comparisons.php#id9240444
[PHP - 应用实例]
语法着色, php.exe -s "%1" > "%1.html"
移除SimpleXML对象中的子对象
- PHP - Manual手册 - 语言参考 - 控制结构 - foreach遍历数组
- PHP - Manual手册 - 语言参考 - 控制结构 - foreach遍历数组
- PHP - Manual手册 - 语言参考 - 运算符 - 位运算符
- PHP - Manual手册 - 语言参考 - 运算符 - 位运算符
- PHP 数组遍历 foreach 语法结构
- PHP 数组遍历 foreach 语法结构
- PHP foreach遍历数组
- php 数组遍历foreach
- PHP - Manual手册 - 函数参考 - Array 数组函数 - array_diff计算数组的差集
- PHP - Manual手册 - 函数参考 - Array 数组函数 - array_diff计算数组的差集
- PHP - Manual手册 - 语言参考 - 类与对象(PHP 5)- Class Abstraction类抽象
- PHP - Manual手册 - 语言参考 - 类与对象(PHP 5)- Class Abstraction类抽象
- PHP - Manual手册 - 语言参考 - 类型 - 字符串 - 字符串转换为数值
- PHP - Manual手册 - Language Reference语言参考 - Variables变量 - Variable scope变量可见性
- php之foreach遍历数组
- PHP中的foreach遍历数组
- PHP数组定义,foreach遍历
- PHP - Manual手册 - 下载
- Struts的心酸往事
- 在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98~102之间的组合
- 下次看NBA一定要看深圳台
- NAF框架终于有了一个好的开端。
- 一位教授的忠告
- PHP - Manual手册 - 语言参考 - 控制结构 - foreach遍历数组
- Spring 2.5 Perfomance Improvements 200% 直逼 Guice
- [转]PHP下一代的五个Framework介绍
- Hibernate Developer's Guide Updated
- [职场生存]细节和感觉[一]:细节
- 用IIS建立高安全性Web服务器
- Spring Developer's Guide Updated!铪
- Windows API一日一练(44)wsprintf函数
- SELECT 赋值与ORDER BY冲突的问题