PHP プログラミングの領域では、array_diff 関数と array_udiff 関数は 2 つの配列間の違いを判断する手段を提供します。ただし、オブジェクトの配列を扱う場合は、カスタマイズされたアプローチが必要です。
次に示すようなオブジェクトの配列
<code class="php">array(4) { [0]=> object(stdClass)#32 (9) { ["id"]=> string(3) "205" ["day_id"]=> string(2) "12" } }</code>
は、特に必要に応じて、独特の課題を引き起こします。例の「id」など、特定の列の値に基づいて違いを判断します。
これに対処するには、array_udiff 関数が役に立ちます。 3 番目のパラメータは、オブジェクトの比較を担当するユーザー定義関数です。適切な比較関数を作成することで、array_udiff に目的の操作を実行するように指示できます。
これを実現する方法の例を次に示します。
<code class="php">function compare_objects($obj_a, $obj_b) { return $obj_a->id - $obj_b->id; } $diff = array_udiff($first_array, $second_array, 'compare_objects');</code>
PHP 5.3 では、匿名関数を使用できます。別個の関数を宣言する代わりに:
<code class="php">$diff = array_udiff($first_array, $second_array, function ($obj_a, $obj_b) { return $obj_a->id - $obj_b->id; } );</code>
これらのテクニックを使用すると、任意の列またはプロパティの値を比較することで、オブジェクトの配列間の差異を効果的に判断できるようになります。
以上がプロパティ列に基づいてオブジェクト配列の配列の違いを見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。