foreach中unset引用变量使用错误

$arr = array(
        array('a'=>1,'b'=>2,'c'=>3,'d'=>4),
        array('a'=>5,'b'=>6,'c'=>7,'d'=>8),
        array('a'=>9,'b'=>10,'c'=>11,'d'=>12),
        array('a'=>13,'b'=>14,'c'=>15,'d'=>16),
        array('a'=>17,'b'=>18,'c'=>19,'d'=>20),
        array('a'=>21,'b'=>22,'c'=>23,'d'=>24),
    );
foreach ($arr as &$val) {
    $temp = $val['a']%2;
    if(1 == $temp) {
        unset($val);
    }
}
print_r($arr);

这段代码,本想销毁掉满足判断条件中,$arr对应的键值对。查看结果,没有销毁。查看了一下手册,在foreach中使用foreache($arr as &$val)引用模式,unset($val),只是取消引用,并不是销毁键值对。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注