温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php使用foreach修改数组的方法

发布时间:2020-10-09 15:05:00 来源:亿速云 阅读:257 作者:小新 栏目:编程语言

这篇文章主要介绍了php使用foreach修改数组的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

php foreach修改数组的方法:首先创建一个PHP示例文件;然后通过foreach语句“foreach($array as $k => $v){$v = 1;}”修改指定数组中的值即可。

php中用foreach改变数组的值的问题

翻到PHP文档的foreach那页这样写道:

“foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。有两种语法:

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。

第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。”

那么“第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。”是什么意思?意思就是说用foreach来遍历数组,所操作的是指定数组的一个拷贝,而不是数组本身。就像有一个克隆的你,别人对克隆的你不管怎么拳打脚踢,对你也是没有影响的。

例如:

foreach($array as $k => $v){
  $v = 1;
}

这样的修改方法修改的并不是$array本身,是修改它拷贝的一个数组,虽然一样但不是$array.所以对$array没有影响。

那么要怎么做?要这样做:

foreach($array as $k => $v){
  $array[$k] = 1;
}

虽然$k和$v一样也是拷贝的,但拷贝的$k的值还是和原数组的$k的值是一样的,所以这样就可以成功了。

还有一种比较高级的方法:可以很容易地通过在 $v 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。例如:

foreach($array as &$v){
  $v = 1;
}
unset($v); // 最后取消掉引用

这样也就成功。

感谢你能够认真阅读完这篇文章,希望小编分享php使用foreach修改数组的方法内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI