• 技术文章 >后端开发 >PHP问题

    php如何使用foreach修改数组

    藏色散人藏色散人2020-10-06 13:55:51原创108

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

    推荐:《PHP视频教程

    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修改数组的详细内容,更多请关注php中文网其它相关文章!

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!
    专题推荐:foreach
    上一篇:如何解决php doc 乱码问题 下一篇:centos yum安装php5.2的方法
    第13期线上培训班

    相关文章推荐

    • for和foreach哪个效率更高?为什么?• php foreach怎么用?• php中foreach()怎么用• php foreach如何修改数组值

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网