ホームページ >バックエンド開発 >PHPチュートリアル >foreach ループ中にデータを配列に動的に追加する
データは foreach ループ中に動的に配列に追加されます。かつて私がプロジェクトに取り組んでいたとき、foreach 中にデータを動的に配列に追加する必要がありました(ここで例を示します)
結果:
ねえ?これは、foreach ループ中にデータを動的に配列に追加できることを示しています。なぜ、$arr 内のデータは、foreach ループによって追加されないのでしょうか。
オンラインで検索したところ、foreachループが実際に行うのは配列自体ではなく、配列のコピーであることがわかりました。実行結果によると、配列を変更する前に作成されたコピーである必要があります。元の値は確かにループ配列で変更されていますが、ループはコピーされた配列 (つまり、古い配列) であるため、新しく追加された要素にループすることはできません
わかりました、今は我慢してください
参照を使用する場合foreach 中に代入すると、新しく追加されたデータは次のようになります。 ループが発生します
foreach ($arr as &$v){···}の場合、$v=&$arr[$k]$arr[$k]と同等であり、$vは$arr[$k]を指します]同時にメモリアドレスは、unset($v)であっても、メモリ空間への$vの参照を削除するだけで、メモリアドレスへの$arr[$k]の参照は削除しないので、$arr[ $k] はまだ生きており、$ arr は当然変化しないので、次のようになります
意味: キーを引用符で囲むことはできず、そのような文法形式はまったくありません
上記では、foreach ループ中の配列へのデータの動的追加について説明しており、関連する内容も含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。