ホームページ >バックエンド開発 >PHPの問題 >PHP foreachで値を変更する方法

PHP foreachで値を変更する方法

藏色散人
藏色散人オリジナル
2021-09-11 10:52:272329ブラウズ

php foreach メソッドで値を変更します: 1. PHP サンプル ファイルを作成します; 2. "foreach($array as $k => $v){$v = 1;}" を通じてそれを変更します。

PHP foreachで値を変更する方法

この記事の動作環境:Windows7システム、PHP7.1バージョン、DELL G3コンピュータ

数値の変更方法php foreachの?

foreach を使用して配列の値を変更する場合の問題

PHP ドキュメントの foreach ページにアクセスすると、次のように表示されます。

"foreach この構文構造は、配列を反復処理する簡単な方法を提供します。foreach は、配列とオブジェクトにのみ適用できます。他のデータ型の変数、または初期化されていない変数に適用しようとすると、エラー メッセージが発行されます。構文は 2 つあります:

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

最初の形式は、指定された array_expression 配列を走査します。各ループで、現在の単位の値が $value に割り当てられ、配列内のポインターが 1 ステップ前に移動します (つまり、次のユニットは次のループで取得されます)。

2 番目の形式は、現在のユニットのキー名が各ループの変数 $key にも割り当てられることを除いて、同じことを行います。"

Then" 最初の形式は、指定された array_expression 配列を反復処理します。ループごとに、現在のセルの値が $value に割り当てられ、配列内のポインターが 1 ステップ前に移動します (つまり、次のセルは次のループで取得されます)」はい どういう意味ですか?これは、foreach を使用して配列を走査すると、配列自体ではなく、指定された配列のコピーが操作されることを意味します。自分のクローンを持つのと同じように、他人が自分のクローンをどのように殴ったり蹴ったりしても、それはあなたには影響しません。

例:

foreach($array as $k => $v){
  $v = 1;
}

このような変更メソッドは、$array 自体を変更するのではなく、コピーした配列を変更します。同じではありますが、$array ではありません。 $array には影響しません。 ######じゃあ何をすればいいの?これを行うには:

foreach($array as $k => $v){
  $array[$k] = 1;
}

$k と $v もコピーされますが、コピーされた $k の値は元の配列の $k の値と同じであるため、これは成功します。

さらに高度な方法もあります。$v の前に & を追加することで、配列の要素を簡単に変更できます。このメソッドは、値をコピーするのではなく、参照によって割り当てます。例:

foreach($array as &$v){
  $v = 1;
}
unset($v); // 最后取消掉引用

これは成功します。

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHP foreachで値を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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