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教程有兴趣的朋友有所帮助。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号