&$v){//loop body state block;}" でループを参照することによって配列を走査します。ループ本体。「===」演算子を使用して、指定されたフィールドの要素を検索し、値を再割り当てします。構文「foreach($arr as $k=>&$v){if($k===specified field)」値){$v=値を置換;}}」。"/> &$v){//loop body state block;}" でループを参照することによって配列を走査します。ループ本体。「===」演算子を使用して、指定されたフィールドの要素を検索し、値を再割り当てします。構文「foreach($arr as $k=>&$v){if($k===specified field)」値){$v=値を置換;}}」。">

ホームページ >バックエンド開発 >PHPの問題 >PHP配列内の特定のフィールド(キー名)の値を走査して置換する方法

PHP配列内の特定のフィールド(キー名)の値を走査して置換する方法

青灯夜游
青灯夜游オリジナル
2022-08-22 19:04:242718ブラウズ

トラバーサル置換手順: 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配列内の特定のフィールド(キー名)の値を走査して置換する方法

最後の要素の前に & があることがわかります。これは、配列は foreach ループの後に残ります。それを破棄するには unset() を使用する必要があります。

unset($v); // 最后取消掉引用

推奨学習: 「PHP ビデオ チュートリアル

以上がPHP配列内の特定のフィールド(キー名)の値を走査して置換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。