Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk melintasi dan menggantikan nilai medan tertentu (nama kunci) dalam tatasusunan php

Bagaimana untuk melintasi dan menggantikan nilai medan tertentu (nama kunci) dalam tatasusunan php

青灯夜游
Lepaskan: 2023-03-16 18:36:01
asal
2704 orang telah melayarinya

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;}}".

Bagaimana untuk melintasi dan menggantikan nilai medan tertentu (nama kunci) dalam tatasusunan php

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){
    //循环体语句块;
}
Salin selepas log masuk

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=新值;
}
Salin selepas log masuk

Kod sampel lengkap:

<?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");
?>
Salin selepas log masuk

Bagaimana untuk melintasi dan menggantikan nilai medan tertentu (nama kunci) dalam tatasusunan php

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); // 最后取消掉引用
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan