【PHP】数组foreach引发的小问题

来源:互联网 发布:软件行业资质认证 编辑:程序博客网 时间:2024/05/22 10:57

Code

$arr1 = [ 1, 2, 3, 4, 5 ];$arr2 = [ 'a', 'b', 'c', 'd', 'e' ];$arr3 = [];foreach ($arr1 as & $v){    $v += 10; }foreach ($arr2 as $k => $v){    //举例    $v = $v . $arr1[ $k ];    $arr3[ $k ] = $v;}echo implode(', ', $arr1) . "\n" . implode(', ', $arr2) . "\n" . implode(', ', $arr3);

Run

11, 12, 13, 14, eea, b, c, d, ea11, b12, c13, d14, ee

Result

出现问题的原因是第一次循环的结束后,对应的$v没有进行释放

Solve

在进行循环之前,通过unset(),对变量进行释放,就不会出现这个问题了

在两次循环之间,添加 unset($v);

11, 12, 13, 14, 15a, b, c, d, ea11, b12, c13, d14, e15
0 0
原创粉丝点击