配列の再帰的比較
2 つの配列を比較する場合、ネストされた構造を調べて不一致を特定する再帰的 diff を実行すると便利なことがよくあります。各レベルで。これは、新しいアルゴリズムの出力をテストしたり、データの一貫性を確保したりする場合に特に役立ちます。
既存の関数
幸いなことに、arrayRecursiveDiff という既製の関数があります。 () は再帰的な配列比較を提供します。これは 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 つの配列を引数として受け取り、それらの差分を含む配列を返します。一致する要素は緑色で示され、一致しない部分は赤色で強調表示されます。
使用法
視覚化に arrayRecursiveDiff() 関数を使用するには、結果を dBug などのツールに送信するか、独自のカスタム レポート インターフェイスを作成します。
代替アプローチ
別のアプローチを希望する場合は、独自の再帰 diff 関数を構築するか、配列比較機能を提供する他の PHP ライブラリを調べてください。ただし、arrayRecursiveDiff() 関数は、深くネストされた配列を比較するための簡単で効率的な方法を提供します。
以上がPHP で深くネストされた配列間の違いを見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。