遍歷替換步驟:1、使用foreach語句透過引用循環的方式遍歷數組,語法「foreach($arr as $k=>&$v){//循環體語句塊;}」; 2.在循環體中,使用「===」運算子尋找指定欄位的元素,並重新賦值,語法「foreach($arr as $k=>&$v){if($k===指定字段值){$v=替換值;}}」。
本教學操作環境: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(&#39;content-type:text/html;charset=utf-8&#39;); 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"); ?>
可以看出,在最後一個元素前,有一個&,那是因為陣列最後一個元素的$value 引用在foreach 迴圈之後仍會保留。我們需要使用unset() 來銷毀。
unset($v); // 最后取消掉引用
推薦學習:《PHP影片教學》
以上是php數組怎麼遍歷替換某一欄位(鍵名)的值的詳細內容。更多資訊請關注PHP中文網其他相關文章!