php – 更改foreach循环中的值不会更改要迭代的数组中的值

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 更改foreach循环中的值不会更改要迭代的数组中的值脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么会这样产生:
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;
}
?>

脚本宝典总结

以上是脚本宝典为你收集整理的php – 更改foreach循环中的值不会更改要迭代的数组中的值全部内容,希望文章能够帮你解决php – 更改foreach循环中的值不会更改要迭代的数组中的值所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。