この記事では、PHP エディター Xigua が、YAML ファイルから 2 つのマッピング階層をマージし、すべてのキーを保持する方法を紹介します。このプロセスは非常に簡単で、適切な関数とメソッドを使用するだけです。 2 つのマッピング階層をマージすることで、それらのキーと値を組み合わせて、より大規模でより包括的なマッピング階層を作成できます。設定ファイルを扱う場合でも、データ処理を行う場合でも、マッピング階層のマージは非常に便利な手法です。次に、このテクニックを簡単に習得できるように、プロセスを段階的に説明します。
私は、yaml ファイル内のネストされたキーを含むソリューションに取り組んでいます。ソフトウェアはパラメータで渡されたファイルを読み取り、キーが更新/追加された順序でそれらをロードします。
2 つの yaml ファイルがあり、キーを失わずにそれらをマージしたいと考えています。キーを削除せずにすべてのプロファイルをスタックして 1 つのマップを生成したいと考えています。
だから私はyaml 1を持っています
リーリーyaml2
リーリー私が望む結果は(順序はyaml1 - yaml2です)
リーリーマップを使用してコピーしようとしましたが、キーの名前が同じなので、
になってしまいました。 リーリー ###使っています### yaml を読み取るためのgopkg.in/yaml.v3 は、map[string] インターフェースを提供します{}
copy
を使用してマップしますenv: test1 template: app: database: name: oracle
プレイグラウンドリンク
。 関数は、2 つのマップに存在するフィールドを再帰的にマージします (両方のマップの場合)。または、dst の値を の
src 値に置き換えます。それ以外の場合は、
maps.Copy と同様です。
これがまさにあなたが求めているものではないとしても、私の例があなたを正しい方向に導いてくれることを願っています。
以上がすべてのキーを保持したまま、YAML ファイルの 2 つのマッピング階層をマージします。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。