再帰差分アルゴリズムを使用した配列構造の比較
質問:
どのように生成できますか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 の利点:
実装の考慮事項:
以上が色分けされた差分を持つ配列構造の再帰的差分を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。