php数组foreach,PHP数组foreach循环

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循环获取值

$authors = array( "Java", "PHP", "CSS", "HTML" );

foreach ( $authors as $val ) {

echo $val . "\n";

}

?>

上面的代码生成以下结果。

2dba5b9a2ff491f6262b062fa47fca11.png

实施例2

使用foreach循环通过关联数组

$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";

}

?>

上面的代码生成以下结果。

18cabf2dcd38fe74e3fba96277c0a178.png

PHP使用foreach更改数组值

当使用foreach时,循环中的值是值的副本。

如果你改变了值,你“不影响值在原始数组中。以下示例代码说明了这一点:

$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 );

?>

上面的代码生成以下结果。

e1cacfa8879a0b54dffd56e747496b96.png

虽然$ val在循环中从“CSS"改为“Javascript"原始的$ authors数组保持不变。

怎么样

要修改数组值,我们需要得到foreach()返回一个引用数组中的值,而不是副本。

句法

要处理对数组元素的引用,请添加一个在foreach语句中的变量名之前的&(和号)符号:

foreach ( $array as & $value ) {

例子

这里的前面的例子改写为使用引用:

$authors = array( "Java", "PHP", "CSS", "HTML" );

foreach ( $authors as & $val ) {

if ( $val == "CSS" ) $val = "Javascript";

echo $val . " ";

}

unset( $val );

print_r ( $authors );

?>

上面的代码生成以下结果。

77f09100b3c1a90381257aba37cd6a2f.png

这一次,第三个元素的值在$ authors数组在数组本身中从“CSS"更改为“Javascript"。

注意

unset($ val)确保$ val变量在循环已完成。

当循环结束时,$ val仍然保存对最后一个元素的引用。在我们的代码中更改$ val改变$ authors数组的最后一个元素。通过取消设置$ val,我们避免潜在的错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值