WithCoderWithCoderWithCoder

PHP学习之foreach循环的使用

foreach是PHP的一种语法结构,在PHP中,foreach 循环用于遍历数组。

语法:

遍历普通数组语法:

foreach ($array as $value){
    要执行代码;
}

遍历关联数组语法:

foreach ($array as $key => $value){
    要执行代码;
}

每进行一次循环,当前数组元素的值就会被赋值给 ($key)$value 变量(数组指针会逐一地移动),在进行下一次循环时,我们将看到数组中的下一个值。

示例:

循环遍历普通数组

<?php
// 数组
$arr = array(1, 2, 3);
// foreach历数组
foreach ($arr as $value) {
   echo $value . " ";
}
// 以上代码输出: 1 2 3

循环遍历关联数组

<?php
// 数组
$arr = array('a' => 1, 'b' => 2, 'c' => 3);
// foreach遍历关联数组
foreach ($arr as $key => $value) {
   echo 'key = ' . $key . ' value = ' . $value . '<br>';
}
// 以上代码输出:
// key = a value = 1
// key = b value = 2
// key = c value = 3

foreach循环的终止和跳出方法

  • break:终止循环    

  • continue:跳出本次循环

<?php
// 数组
$arr = array(1, 2, 3, 4, 5);
$rest = 0;
// foreach历数组
foreach ($arr as $value) {
   if ($value == 2) {
       continue; // $value 2,跳出本次循
   }
   if ($value == 4) {
       break; // $value 4止循
   }
   // 数组1
   $rest += $value;
}

echo $rest; // 值为 4 ( 1 3 相加的)

使用foreach循环直接遍历的话,原数组是不会发送改变的。但有时候,我们在遍历的同时,改变数组的值。这时,我们可以在遍历的值前面加个 & 符号,这样就可以改变原数组了。如下示例:

<?php
// 数组
$arr = array('a' => 1, 'b' => 2, 'c' => 3);
// foreach历关联数组
foreach ($arr as $key => &$value) {
   // 数组1
   $value += 1;
   echo 'key = ' . $key . ' value = ' . $value . '<br>';
}

// 打印原数组
var_dump($arr);

以上代码将输出(可以发现,原数组元素的值发送了变化):

1-200331094233a8.png


欢迎分享交流,转载请注明出处:WithCoder » PHP学习之foreach循环的使用