foreach 引用傳值&
foreach($arras$key => &$vo
)
//這樣我們就完成了對陣列元素新增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 ($data2as$k=>$v
)
這裡沒有用&引用符,所以沒效果,最終列印的結果是:列印data2沒變化,只有列印$v才顯示下面的結果
print_r($v);die; // 上面的不加&連線符,相當於把迴圈的結果,最終付給了$v的這個陣列變數了,跟data2沒有關係;他們之間沒有連線的橋梁,各式各的,沒有關聯。array
( [0] =>黑龍江
[number] => 4)
如果要有效果,加上&符號,意思就是把遍歷出來的data2裡面的兩個陣列,每乙個都加上number這個元素;相當於乙個把data2裡的值,跟number連線起來的作用,相當於一座橋梁,
foreach ($data2as$k=>&$v
)
或者不用引用符,直接用 data[$k]['num']
foreach ($data2 as $k => $v)
結果:
array( [0] => array
([0] => 北京
[num] => 1
)[1] => array
([0] => 黑龍江
[num] => 4
))
給乙個陣列新增乙個元素的其中之一的方法就是下面
$arr = array('北京');
$arr['aa'] = 55;
結果:給arr新增乙個aa鍵名,值為55
array( [0] => 北京
[aa] => 55
)
foreach裡的按引用傳值問題
1.foreach arr as k v 這樣迴圈時候最後乙個結果前邊會有 出現輸出不了的情況,這時候只需要加乙個unset v 加在迴圈裡和外均可。2.監聽input框的輸入變化 aaa bind input propertychange function 3.js陣列只可定義索引陣列,實際上無 ...
傳值 傳值引用
首先對傳值和傳引用要有個基本的概念 傳值 傳遞的是值的副本。方法中對副本的修改,不會影響到呼叫方。傳引用 傳遞的是引用的副本,共用乙個記憶體,會影響到呼叫方。此時,形參和實參指向同乙個記憶體位址。對引用副本本身 物件位址 的修改,如設定為null,重新指向其他物件,不會影響到呼叫方。直接上 更好的理...
傳值 傳引用 傳指標
收藏 相關概念 c 三種傳遞引數方式 傳引數的值 稱值傳遞,簡稱傳值 傳引數的位址 稱位址傳遞,簡稱為傳址 和引用傳遞 稱為傳引用 相應的函式傳值呼叫,傳址呼叫和傳引用呼叫 形參 實參 函式定義時參數列中的引數稱為形式引數,簡稱形參 函式呼叫時參數列中的引數稱為實際引數,簡稱實參。實參和形參之間的資...