遍歷替換步驟:1、使用foreach語句通過引用循環(huán)的方式遍歷數(shù)組,語法“foreach($arr as $k=>&$v){//循環(huán)體語句塊;}”;2、在循環(huán)體中,使用“===”運(yùn)算符查找指定字段的元素,并重新賦值,語法“foreach($arr as $k=>&$v){if($k===指定字段值){$v=替換值;}}”。
本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦
在php數(shù)組中,可以借助foreach語句來遍歷替換某一字段(鍵名)的值。
實(shí)現(xiàn)步驟:
步驟1:使用foreach語句通過引用循環(huán)的方式遍歷數(shù)組
foreach ($array as $key => &$value){ //循環(huán)體語句塊; }
遍歷給定的 $array 數(shù)組,在每次循環(huán)中會(huì)將當(dāng)前數(shù)組的值賦給 $value,鍵名賦給 $key。
一般情況下,使用foreach語句遍歷數(shù)組時(shí),是對(duì)數(shù)組的備份進(jìn)行操作,一般不會(huì)影響數(shù)組本身。
想要通過循環(huán)來改變數(shù)組可以采用引用循環(huán)(在
$value
之前加上&
,這樣foreach語句會(huì)以引用賦值而不是拷貝一個(gè)值),那么在循環(huán)體內(nèi)對(duì)數(shù)組進(jìn)行操作,就會(huì)影響數(shù)組本身。
步驟2:在循環(huán)體中,使用“===”運(yùn)算符查找指定字段,并重新賦值
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 "原數(shù)組:"; var_dump($arr); f($arr,"a","aaa"); f($arr,"b","bbb"); f($arr,"c","ccc"); ?>
可以看出,在最后一個(gè)元素前,有一個(gè)&,那是因?yàn)閿?shù)組最后一個(gè)元素的 $value 引用在 foreach 循環(huán)之后仍會(huì)保留。我們需要使用unset() 來將其銷毀。
unset($v); // 最后取消掉引用
推薦學(xué)習(xí):《PHP視頻教程》