foreach 引用傳值&
阿新 • • 發佈:2019-03-24
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 引用傳值&