ホームページ > バックエンド開発 > PHPチュートリアル > 色分けされた差分を持つ配列構造の再帰的差分を作成するにはどうすればよいですか?

色分けされた差分を持つ配列構造の再帰的差分を作成するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-14 10:03:02
オリジナル
473 人が閲覧しました

How to Create a Recursive Diff for Array Structures with Color-Coded Differences?

再帰差分アルゴリズムを使用した配列構造の比較

質問:

どのように生成できますか2 つの配列の再帰的差分。一致する要素は緑色でマークされ、一致しない要素は赤でマークされます?

回答:

配列を再帰的に比較する再帰的 diff を実行するには、で説明されているようなカスタム関数を利用できます。 PHP array_diff 関数のコメント:

function arrayRecursiveDiff($aArray1, $aArray2) {
  $aReturn = array();

  foreach ($aArray1 as $mKey => $mValue) {
    if (array_key_exists($mKey, $aArray2)) {
      if (is_array($mValue)) {
        $aRecursiveDiff = arrayRecursiveDiff($mValue, $aArray2[$mKey]);
        if (count($aRecursiveDiff)) { $aReturn[$mKey] = $aRecursiveDiff; }
      } else {
        if ($mValue != $aArray2[$mKey]) {
          $aReturn[$mKey] = $mValue;
        }
      }
    } else {
      $aReturn[$mKey] = $mValue;
    }
  }
  return $aReturn;
}
ログイン後にコピー

この関数はキーと値を反復処理します。最初の配列のキーが 2 番目の配列に存在するかどうかを確認し、データ型に基づいて比較を処理します。構造的または値の不一致がある場合、結果は $aReturn 配列に追加されます。

再帰 Diff の利点:

  • 配列構造のあらゆるレベルでの比較が可能になり、複雑な配列の徹底的なテストが可能になります。データ。
  • デバッグが容易になり、更新されたメソッドの正確性が保証されます。

実装の考慮事項:

  • 関数は現在 2 つのデータを処理します。一度に配列します。大きなセットの場合は、差分を順番に実行できます。
  • 比較メソッドはキーの存在と同等性のみをチェックするため、特定のニーズに基づいて追加のカスタマイズが必要になる場合があります。

以上が色分けされた差分を持つ配列構造の再帰的差分を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート