當前位置:首頁 » 編程語言 » php數組循環賦值

php數組循環賦值

發布時間: 2025-01-28 09:23:25

php中如何利用foreach循環將一個多維數組賦值到另一個多維數組

PHP 多維數組的賦值與一維數組原理一樣

例如:
<?php
$array = array(array('a','b'),array('c','d'));
$array1 = array(array('a1','b1'),array('c1','d1'));

foreach($array1 as $value){

$array[] = $value;
}
?>

實際上原理是一樣的,多維數組就是復雜一些。
不過,對於多維數組的處理,邏輯思維得更強一些。

❷ php數組的賦值問題

您好,您這樣:
foreach($arr as $k=>$v){
//這個的意思是 循環數組$arr,把當前循環的下標(鍵名)賦值給$k,當前循環的數組元素賦值給$v
//然後你改變的是$v的值,這就類似於
// $a = 1;
// $b = $a;
// $a = 2;
// echo $b;
// 你改變了$a的值,但$b還是原來的1;
}
//所以你這個可以這樣修改
foreach ($ss as $k=>$v) {
if($v['two'] == "3"){
$ss[$k]['two'] = 1000;
//或者
//$v['two'] = 1000;
//$ss[$k] = $v;
}
}
print_r($ss);

❸ PHP語言中 foreach 遍歷數組用法

第一種格式遍歷給定的 $a 數組。每次循環中,當前單元的值被賦給 $b 並且數組內部的指針向前移一步(因此下一次循環中將會得到下一個單元)。

自 PHP 5 起,可以很容易地通過在 $b 之前加上 & 來修改數組的單元。此方法將以引用賦值而不是拷貝一個值。例如:
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
?>

var_mp($arr);#列印$arr看下你就明白了,列印之後你再把&去掉,運行再列印,兩次比較就清楚

第二種就是把原$arr中的每個單元重新賦值,上面那樣寫已經很清楚了,不明白的話,就到網上下載一個php手冊,好好看看

❹ PHP怎樣用循環將10個數字賦值給一個數組

利用PHP對數組賦值時下標變數會自動遞增的特點,可以很方便用循環將數據存入一個數組。

例如:$arr[] = 'a'; 這條語句會將字元a存入數組變數$arr中,如果$arr不存在則會新建一個;

若已存在,則將$arr數組的下標變數遞增1後存入字元。

也就是說,如果已有$arr[0]='a', 那麼執行 $arr[] = 'b'; 後,數組其實是進行了$arr[1] = 'b' 的操作。

❺ php的foreach使用&引用數組最後一個元素的 $value 引用在 foreach 循環之後仍會保留

你好!

這段代碼中有2個foreach循環。產生這個結果的原因是引用變數沒有進行釋放造成的。
1.第一個foreach循環,使用了&$value的寫法,我們理解為指針變數,當循環結束後,
它指向的是數組中最後一個元素,即$arr[5],此時它的值為12.
2.第二個foreach循環,相當於每次循環都給$value進行賦值,由於$value的引用沒有釋放,
那麼就是間接的為arr[5]進行賦值,它每次的循環結果如下:
2,4,6,8,10,2
2,4,6,8,10,4
2,4,6,8,10,6
2,4,6,8,10,8
2,4,6,8,10,10
很好解決,就是在第一次foreach循環結束後,釋放$value的引用,即unset($value);

希望對你有幫助!

❻ PHP foreach 遍歷修改值的正確方法與踩坑!

基礎使用:foreach在PHP中提供了一種簡潔的遍歷數組的方式。它僅適用於數組和對象。嘗試應用於其他數據類型的變數或未初始化的變數將導致錯誤信息。

使用foreach時,有兩種格式進行遍歷。第一種格式直接遍歷給定的array_expression數組。每次循環中,當前單元的值被賦給$value,同時數組內部的指針向前移一步,以獲取下一個單元。第二種格式與第一種類似,但同時還會將當前單元的鍵名賦給變數$key。

PHP的數組實質上是一個鍵值對形式的映射。在不指定key的情況下,如上代碼中的$a變數就是只定義了$value而沒有定義$key的數組,數組的下標分別為0、1、2,對應的值分別為2、4、8。

$b變數定義了$key和$value,說明在PHP中數組下標可以是自定義的。如果未定義下標,則默認從0開始計數數組下標。

這就是使用foreach對PHP數組進行遍歷的方法。若要在遍歷的同時修改數組中的值,應這樣做:

注意,在$value變數前添加了&符號,以將遍歷到的值的引用賦給$value。如果不添加&,賦值操作將無效。

使用此方法後,數組中的值將變為20、40、80。

使用&後,繼續遍歷$a查看值,結果為:

如果不使用unset()銷毀該引用,則輸出結果為:

為什麼會出現這種情況?我們將分步解析整個過程:

循環1-1:由於$v是一個引用,因此$v = &$a[0],$v = $v * 10相當於$a[0] * 10。此時,$a = [20, 4, 8]。

循環1-2:$v = &$a[1],$v = $v * 10相當於$a[1] * 10。此時,$a = [20, 40, 8]。

循環1-3:$v = &$a[2],$v = $v * 10相當於$a[2] * 10。此時,$a = [20, 40, 80]。

循環2-1:隱含操作$v = $a[0]被觸發,由於$v仍是$a[2]的引用,相當於$a[2] = $a[0]。此時,$a = [20, 40, 20]。

循環2-2:$v = $a[1],此時$v仍是$a[2]的引用,即$a[2] = $a[1]。此時,$a = [20, 40, 40]。

循環2-3:$v = $a[2],此時$v仍是$a[2]的引用,即$a[2] = $a[2]。此時,$a = [20, 40, 40]。

為解決此問題,PHP官方文檔建議使用unset()銷毀最後一個元素的引用。

遇到問題時,優先查找官方文檔,這很可能直接解決問題。當然,如果這篇白話解讀解決了你的問題,請點個贊吧!

❼ php foreach 數組賦值

<?php
//代碼本地已運行過
$arr=array(1,2,2,4);
$uniq_arr
=
array_unique($arr);//第一步先去重,取得最外部需要循環的數組
$i
=
0;
foreach($uniq_arr
as
$key=>$val){//循環去重後的數組
foreach($arr
as
$k=>$v){//循環原生數組
if($key
!=
$k){//判斷兩次的key是否相等,array_unique,去重後的數組key是不變的
if($val
==
$v){
if(is_array($new_arr[$i])){//判斷是否已經是個數組,是就直接追加
array_push($new_arr[$i],$v);
}else{//不是就拼接後再追加
$k_arr
=
array($new_arr[$i]);
array_push($k_arr,$v);
$new_arr[$i]
=
$k_arr;
}
}
}else{//如果key相等直接賦值給新數組
$new_arr[$i]
=
$val;
}
}
$i++;
}
print_r($new_arr);
?>

熱點內容
伺服器上怎麼連接電腦 發布:2025-01-30 02:17:09 瀏覽:506
ftp後台管理 發布:2025-01-30 02:17:09 瀏覽:465
17年博瑞旗艦版什麼配置 發布:2025-01-30 02:16:25 瀏覽:429
cf背包配置頁激活卡有什麼用 發布:2025-01-30 02:13:28 瀏覽:441
逆世戰神輔助或腳本 發布:2025-01-30 02:02:33 瀏覽:537
安卓系統如何設置返回按鈕 發布:2025-01-30 02:02:02 瀏覽:766
存儲類手游 發布:2025-01-30 01:51:11 瀏覽:691
不動產登記資料庫 發布:2025-01-30 01:39:36 瀏覽:370
ug編程自學網 發布:2025-01-30 01:26:04 瀏覽:78
linux交換內存 發布:2025-01-30 01:21:04 瀏覽:138