PHP プログラミングの領域では、array_diff 関数と array_udiff 関数は 2 つの配列間の違いを判断する手段を提供します。ただし、オブジェクトの配列を扱う場合は、カスタマイズされたアプローチが必要です。
次に示すようなオブジェクトの配列:
array(4) {
[0]=>
object(stdClass)#32 (9) {
["id"]=>
string(3) "205"
["day_id"]=>
string(2) "12"
}
}
は、特に例の「id」など、特定の列の値に基づいて違いを判断したい場合に、独特の課題を引き起こします。
これに対処するために、array_udiff 関数が登場します。私たちの助けに。 3 番目のパラメータは、オブジェクトの比較を担当するユーザー定義関数です。適切な比較関数を作成することで、array_udiff に目的の操作を実行するように指示できます。
これを実現する方法の例を次に示します。
function compare_objects($obj_a, $obj_b) {
return $obj_a->id - $obj_b->id;
}
$diff = array_udiff($first_array, $second_array, 'compare_objects');
PHP 5.3 では、別の関数を宣言する代わりに匿名関数を使用できます。
$diff = array_udiff($first_array, $second_array,
function ($obj_a, $obj_b) {
return $obj_a->id - $obj_b->id;
}
);
これらのテクニックを使用すると、任意の列またはプロパティの値を比較することで、オブジェクトの配列間の差異を効果的に判断できるようになります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3