Code
<code><span>$arr1</span> = [ <span>1</span>, <span>2</span>, <span>3</span>, <span>4</span>, <span>5</span> ]; <span>$arr2</span> = [ <span>'a'</span>, <span>'b'</span>, <span>'c'</span>, <span>'d'</span>, <span>'e'</span> ]; <span>$arr3</span> = []; <span>foreach</span> (<span>$arr1</span><span>as</span> & <span>$v</span>){ <span>$v</span> += <span>10</span>; } <span>foreach</span> (<span>$arr2</span><span>as</span><span>$k</span> => <span>$v</span>){ <span>//举例</span><span>$v</span> = <span>$v</span> . <span>$arr1</span>[ <span>$k</span> ]; <span>$arr3</span>[ <span>$k</span> ] = <span>$v</span>; } <span>echo</span> implode(<span>', '</span>, <span>$arr1</span>) . <span>"\n"</span> . implode(<span>', '</span>, <span>$arr2</span>) . <span>"\n"</span> . implode(<span>', '</span>, <span>$arr3</span>);</code>
Run
<code><span>11</span>, <span>12</span>, <span>13</span>, <span>14</span>, ee <span>a</span>, b, c, d, e a11, b12, c13, d14, ee</code>
Result
出现问题的原因是第一次循环的结束后,对应的$v
没有进行释放
Solve
在进行循环之前,通过unset()
,对变量进行释放,就不会出现这个问题了
在两次循环之间,添加 unset($v);
<code><span>11</span>, <span>12</span>, <span>13</span>, <span>14</span>, <span>15</span><span>a</span>, b, c, d, e a11, b12, c13, d14, e15</code>
以上就介绍了数组foreach引发的小问题,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。