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

简介: 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 .

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
目录
相关文章
|
1月前
|
PHP
php的foreach神操作
php的foreach神操作
22 0
|
7月前
|
PHP
php数组随机排序
PHP中对数据进行随机排序
php案例:自己写个数组转换成对象 对象转换成数组的的功能出来吧
php案例:自己写个数组转换成对象 对象转换成数组的的功能出来吧
php案例:自己写个数组转换成对象 对象转换成数组的的功能出来吧
|
3月前
|
JSON PHP 数据格式
php 删掉空的数组 json数据. 空数据(false 0 ““ null)
php 删掉空的数组 json数据. 空数据(false 0 ““ null)
php 删掉空的数组 json数据. 空数据(false 0 ““ null)
|
4月前
|
JSON PHP 数据格式
【PHP学习】—数组的定义和遍历(三)
【PHP学习】—数组的定义和遍历(三)
|
6月前
|
PHP 数据库 索引
PHP中的for循环和forEach循环
PHP中的for循环和forEach循环
|
7月前
|
搜索推荐 算法 PHP
PHP 数组(Array) - 排序算法
PHP 数组(Array) - 排序算法
23 0
|
7月前
|
PHP 索引
PHP 数组(Array)
PHP 数组(Array)
29 0