1. 程式人生 > >foreach 引用傳值&

foreach 引用傳值&

ron 關系 由於 class 數組元素 我們 strong 有用 htm

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
)

foreach 引用傳值&