首頁 > 後端開發 > PHP問題 > php數組怎麼遍歷替換某一欄位(鍵名)的值

php數組怎麼遍歷替換某一欄位(鍵名)的值

青灯夜游
發布: 2023-03-16 18:36:01
原創
2705 人瀏覽過

遍歷替換步驟:1、使用foreach語句透過引用循環的方式遍歷數組,語法「foreach($arr as $k=>&$v){//循環體語句塊;}」; 2.在循環體中,使用「===」運算子尋找指定欄位的元素,並重新賦值,語法「foreach($arr as $k=>&$v){if($k===指定字段值){$v=替換值;}}」。

php數組怎麼遍歷替換某一欄位(鍵名)的值

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

在php陣列中,可以藉助foreach語句來遍歷替換某一欄位(鍵名)的值。

實作步驟:

步驟1:使用foreach語句透過引用循環的方式遍歷數組

foreach ($array as $key => &$value){
    //循环体语句块;
}
登入後複製

遍歷給定的 $array 數組,在每次循環中會將目前數組的值賦給 $value,鍵名賦給 $key。

一般情況下,使用foreach語句遍歷陣列時,是對陣列的備份進行操作,一般不會影響陣列本身。

想要透過迴圈來改變陣列可以採用引用迴圈(在 $value 之前加上 &,這樣foreach語句會以引用賦值而不是拷貝一個值),那麼在循環體內對數組進行操作,就會影響數組本身。

步驟2:在循環體中,使用「===」運算子來尋找指定字段,並重新賦值

if($key===指定字段){
$value=新值;
}
登入後複製

完整範例程式碼:

<?php
header('content-type:text/html;charset=utf-8');   
function f($arr,$s,$r){
foreach($arr as $k=>&$v){
	if($k===$s){
		$v=$r;
	}
}
	echo "字段 $s 的值替换为 $r";
	var_dump($arr);
}
$arr=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
echo "原数组:";
var_dump($arr);
f($arr,"a","aaa");
f($arr,"b","bbb");
f($arr,"c","ccc");
?>
登入後複製

php數組怎麼遍歷替換某一欄位(鍵名)的值

可以看出,在最後一個元素前,有一個&,那是因為陣列最後一個元素的$value 引用在foreach 迴圈之後仍會保留。我們需要使用unset() 來銷毀。

unset($v); // 最后取消掉引用
登入後複製

推薦學習:《PHP影片教學

以上是php數組怎麼遍歷替換某一欄位(鍵名)的值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板