$v){ //举例 $v = $v . $arr1[ $k ]; $arr3[ $k ] = $v; } echo implode(", ", $arr1) . " " " />
牛骨文教育服务平台(让学习变的简单)

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) . "
" . implode(", ", $arr2) . "
" . 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