PHP数组foreach循环
2018-02-22 16:40 更新
PHP教程 - PHP数组foreach循环
foreach
是一种特殊的循环语句,只适用于数组和对象。
foreach
可以以两种方式使用。
- retrieve just the value of each element, or
- retrieve the element"s key and value.
语法获取值
使用foreach检索每个元素的值,如下所示:
foreach ( $array as $value ) { // (do something with $value here) } // (rest of script here)
获取键和值的语法
要使用foreach检索键和值,请使用以下语法:
foreach ( $array as $key => $value ) { // (do something with $key and/or $value here } // (rest of script here)
实施例1
使用foreach循环获取值
<?PHP
$authors = array( "Java", "PHP", "CSS", "HTML" );
foreach ( $authors as $val ) {
echo $val . "\n";
}
?>
上面的代码生成以下结果。
实施例2
使用foreach循环通过关联数组
<?php //from ww w . ja va2s . c o m
$myBook = array( "title" => "Learn PHP from www.w3cschool.cn",
"author" => "www.w3cschool.cn",
"pubYear" => 2000 );
foreach ( $myBook as $key => $value ) {
echo "$key \n";
echo "$value \n";
}
?>
上面的代码生成以下结果。
PHP使用foreach更改数组值
当使用foreach时,循环中的值是值的副本。
如果你改变了值,你“不影响值在原始数组中。以下示例代码说明了这一点:
<?PHP/*www .j a va 2 s. c o m*/
$authors = array( "Java", "PHP", "CSS", "HTML" );
// Displays "Java PHP Javascript HTML";
foreach ( $authors as $val ) {
if ( $val == "CSS" ) $val = "Javascript";
echo $val . " ";
}
print_r ( $authors );
?>
上面的代码生成以下结果。
虽然$ val在循环中从“CSS"改为“Javascript"原始的$ authors数组保持不变。
怎么样
要修改数组值,我们需要得到foreach()返回一个引用数组中的值,而不是副本。
句法
要处理对数组元素的引用,请添加一个在foreach语句中的变量名之前的&
(和号)符号:
foreach ( $array as & $value ) {
例子
这里的前面的例子改写为使用引用:
<?PHP
$authors = array( "Java", "PHP", "CSS", "HTML" );
foreach ( $authors as & $val ) {
if ( $val == "CSS" ) $val = "Javascript";
echo $val . " ";
}
unset( $val );
print_r ( $authors );
?>
上面的代码生成以下结果。
这一次,第三个元素的值在$ authors数组在数组本身中从“CSS"更改为“Javascript"。
注意
unset($ val)
确保 $ val
变量在循环已完成。
当循环结束时,$ val仍然保存对最后一个元素的引用。在我们的代码中更改$ val改变$ authors数组的最后一个元素。通过取消设置$ val,我们避免潜在的错误。
以上内容是否对您有帮助:
← PHP继续
更多建议: