Langkah penggantian traversal: 1. Gunakan pernyataan foreach untuk melintasi tatasusunan dengan merujuk gelung, sintaksnya ialah "foreach($arr as $k=>&$v){//Loop body block statement ;}"; 2. Dalam badan gelung, gunakan operator "===" untuk mencari elemen medan yang ditentukan dan menetapkan semula nilai. Sintaks "foreach($arr as $k=>&$v){ if($k===menentukan nilai Medan){$v=nilai gantian;}}".
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi PHP 8.1, komputer DELL G3
Dalam tatasusunan php, anda boleh menggunakan pernyataan foreach kepada Traverse dan gantikan nilai medan tertentu (nama kunci).
Langkah pelaksanaan:
Langkah 1: Gunakan pernyataan foreach untuk melintasi tatasusunan melalui gelung rujukan
foreach ($array as $key => &$value){ //循环体语句块; }
Traverse Memandangkan tatasusunan $array, dalam setiap gelung, nilai tatasusunan semasa akan diberikan kepada $value, dan nama kunci akan diberikan kepada $key.
Secara amnya, apabila menggunakan pernyataan foreach untuk melintasi tatasusunan, ia beroperasi pada sandaran tatasusunan dan secara amnya tidak menjejaskan tatasusunan itu sendiri.
Jika anda ingin menukar tatasusunan melalui gelung, anda boleh menggunakan gelung rujukan (tambah
$value
sebelum&
supaya pernyataan foreach akan menetapkan nilai melalui rujukan dan bukannya menyalin nilai), kemudian lakukan operasi pada tatasusunan dalam badan gelung Operasi akan mempengaruhi tatasusunan itu sendiri.
Langkah 2: Dalam badan gelung, gunakan operator "===" untuk mencari medan yang ditentukan dan tetapkan semula nilai
if($key===指定字段){ $value=新值; }
Kod sampel lengkap:
<?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"); ?>
Seperti yang anda lihat, terdapat & sebelum elemen terakhir Itu kerana rujukan $value elemen terakhir tatasusunan Akan kekal selepas gelung foreach. Kita perlu menggunakan unset() untuk memusnahkannya.
unset($v); // 最后取消掉引用
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk melintasi dan menggantikan nilai medan tertentu (nama kunci) dalam tatasusunan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!