php – 更改foreach循环中的值不会更改要迭代的数组中的值
发布时间:2020-12-13 17:36:43 所属栏目:PHP教程 来源:网络整理
导读:为什么会这样产生: foreach( $store as $key = $value){$value = $value.".txt.gz";}unset($value);print_r ($store);Array([1] = 101Phones - Product Catalog TXT[2] = 1-800-FLORALS - Product Catalog 1) 我试图获得101手机 – 产品目录TXT.txt.gz 关于
为什么会这样产生:
foreach( $store as $key => $value){ $value = $value.".txt.gz"; } unset($value); print_r ($store); Array ( [1] => 101Phones - Product Catalog TXT [2] => 1-800-FLORALS - Product Catalog 1 ) 我试图获得101手机 – 产品目录TXT.txt.gz 关于发生什么的想法? 编辑:好的,我找到了解决方案…我的数组中的变量有值得我看不到…在做 $output = preg_replace('/[^(x20-x7F)]*/','',$output); echo($output); 清理干净,使其正常工作
doc
http://php.net/manual/en/control-structures.foreach.php清楚地说明为什么你有问题:
“为了能够直接在循环之前修改循环中的数组元素,并带有& $;在这种情况下,该值将通过引用赋值. <?php $arr = array(1,2,3,4); foreach ($arr as &$value) { $value = $value * 2; } // $arr is now array(2,4,6,8) unset($value); // break the reference with the last element ?> 仅当引用迭代数组(即如果它是变量)时才引用$值.以下代码将无法正常工作: <?php /** this won't work **/ foreach (array(1,4) as &$value) { $value = $value * 2; } ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |