PHP foreach

PHP 中的 foreach 用于循环输出数组或者对象中的内容。

foreach开始执行时,指针自动指到数组的第一个单元格;

每次遍历时,当前指针所指向的值赋给$value,并且数组中指针自动移到下一位。

(注:为了便于查看,此文数组的输出格式均为“查看网页源代码”之后的格式)

有两种语法:

1.foreach($arr as $value)

eg:

<?php
$arr = array('a','b','c');
foreach($arr as $value) {
    echo "value is ".$value."<br>";
}
var_dump($arr);
?>

输出:

value is a
value is b
value is c
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}

2.foreach($arr as $key=>$value) 

eg:

<?php
$arr = array('a','b','c');
foreach($arr as $key=>$value) {
    echo "key is ".$key.",value is ".$value.",\$arr[$key] is ".$arr[$key]."<br>";
}
var_dump($arr);
?>

输出:

key is 0,value is a,$arr[0] is a
key is 1,value is b,$arr[1] is b
key is 2,value is c,$arr[2] is c
array(3) {
    [0]=>
  string(1) "a"
    [1]=>
  string(1) "b"
    [2]=>
  string(1) "c"
}


可以增加数组中的值:

eg:

<?php
$arr = array(
    array('a','b','c'),
    array('e','f','g')
);
var_dump($arr);
$arr[0][3] = 'm';
$arr[1][3] = 'n';
var_dump($arr);
?>

输出:

array(2) {
    [0]=>
  array(3) {
        [0]=>
    string(1) "a"
        [1]=>
    string(1) "b"
        [2]=>
    string(1) "c"
  }
  [1]=>
  array(3) {
        [0]=>
    string(1) "e"
        [1]=>
    string(1) "f"
        [2]=>
    string(1) "g"
  }
}
array(2) {
    [0]=>
  array(4) {
        [0]=>
    string(1) "a"
        [1]=>
    string(1) "b"
        [2]=>
    string(1) "c"
        [3]=>
    string(1) "m"
  }
  [1]=>
  array(4) {
        [0]=>
    string(1) "e"
        [1]=>
    string(1) "f"
        [2]=>
    string(1) "g"
        [3]=>
    string(1) "n"
  }
}

可以删除数组中的某个值:

eg:

<?php
$arr = array(
    array('a','b','c')
);
var_dump($arr);
unset($arr[0][0]);
var_dump($arr);
?>
输出:

array(1) {
  [0]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}
array(1) {
  [0]=>
  array(2) {
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}

修改数组中元素的值

在$value前边加上&符号,可以实现引用赋值。

eg:

<?php
$arr = array(1,2,3);
foreach($arr as &$array) {
    $array = $array * 2;
}
unset($array);//取消掉引用
var_dump($arr);
?>
输出:

array(3) {
  [0]=>
  int(2)
  [1]=>
  int(4)
  [2]=>
  int(6)
}



注:$value的引用仅在被遍历的数组可以被引用时才可用(例如是个变量),否则无效:

eg

<?php
foreach(array(1,2,3) as &$value) {
    $value = $value * 2;
}
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值