foreach 引用传值&

foreach  引用传值&

php 怎么在foreach中循环数组   ,的时候添加元素跟值

foreach($arr as $key => &$vo){
        //注意,由于上面遍历的时候写了地址传值符&,
        //所以下面可以直接给$vo 赋值;如果不写&符号,下面这样写是没有任何意义的
        $vo['name'] = '张三';
        $vo['age'] = '20';
    }
    //这样我们就完成了对数组元素添加name属性和age属性了,
    在上面的写法中,如果我们不填写&符号,还可以使用下面的办法来添加属性,那就是
    $arr[$key]['name'] = '张三';
    $arr[$key]['age'] = '20';

举例子:将data1中的1,4,分别插入data2的两个数组中去

$data1 = Array(1,4);
$data2 = array(
array('北京'),
array('黑龙江')
);

最终效果:

Array ( 
  [0] => Array ( 
    [0] => 北京 
    [number] => 1 
  ) 

  [1] => Array ( 
    [0] => 黑龙江 
    [number] => 4 
  ) 

)

  

  使用上面的方法;

foreach ($data2 as $k=>$v) {
$v['number'] = $data1[$k];
}

这里没有用&引用符,所以没效果,最终打印的结果是:打印data2没变化,只有打印$v才显示下面的结果

print_r($v);die; // 上面的不加&连接符,相当于把循环的结果,最终付给了$v的这个数组变量了,跟data2没有关系;他们之间没有连接的桥梁,各式各的,没有关联。
Array
( [0] => 黑龙江 [number] => 4 )

 

如果要有效果,加上&符号,意思就是把遍历出来的data2里面的两个数组,每一个都加上number这个元素;相当于一个把data2里的值,跟number连接起来的作用,相当于一座桥梁,

foreach ($data2 as $k=>&$v) {
$v['number'] = $data1[$k];
}

或者不用引用符,直接用  data[$k]['num'] 

foreach ($data2 as $k => $v) {
$data2[$k]['num'] = $data1[$k];
}

  结果:

Array
(
    [0] => Array
        (
            [0] => 北京
            [num] => 1
        )

    [1] => Array
        (
            [0] => 黑龙江
            [num] => 4
        )

)

  

 

 

 

给一个数组添加一个元素的其中之一的方法就是下面

$arr = array('北京');
$arr['aa'] = 55;

结果:给arr添加一个aa键名,值为55

Array
(
    [0] => 北京
    [aa] => 55
)

转载于:https://www.cnblogs.com/yszr/p/10586250.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值