php foreach メソッドで配列を変更します: まず PHP サンプル ファイルを作成し、次に foreach ステートメント「foreach($array as $k => $v){$v = 1;」を使用して指定された配列を変更します。 }" 値は十分です。
推奨: 「PHP ビデオ チュートリアル」
foreach を使用して配列の値を変更する際の問題PHP
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でforeachを使用して配列を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。