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

最后更新于:2022-04-01 09:56:09

### 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, ee a, b, c, d, e a11, b12, c13, d14, ee ~~~ ### Result 出现问题的原因是第一次循环的结束后,对应的`$v`没有进行释放 ### Solve 在进行循环之前,通过`unset()`,对变量进行释放,就不会出现这个问题了 > 在两次循环之间,添加 unset($v); ~~~ 11, 12, 13, 14, 15 a, b, c, d, e a11, b12, c13, d14, e15 ~~~
';