ホームページ > バックエンド開発 > PHPチュートリアル > PHP で深くネストされた配列間の違いを見つけるにはどうすればよいですか?

PHP で深くネストされた配列間の違いを見つけるにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-12 02:49:02
オリジナル
763 人が閲覧しました

How can I find differences between deeply nested arrays in PHP?

配列の再帰的比較

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 サイトの他の関連記事を参照してください。

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