配列関数を使用した列値によるオブジェクトの配列の比較
多くのプログラミング言語には、配列を比較するための組み込み関数が用意されています。ただし、これらの関数は通常、オブジェクトの配列ではなく、プリミティブ データ型と配列を処理します。このため、特定のプロパティまたは列に基づいてオブジェクトの配列を比較する方法という問題が生じます。
これに対処するために、PHP では、カスタム比較関数を指定することでオブジェクトの配列を比較できるようにする関数、array_udiff を提供しています。次の例を考えてみましょう:
$first_array = array( (object) ['id' => '205', 'day_id' => '12'], (object) ['id' => '210', 'day_id' => '15'] ); $second_array = array( (object) ['id' => '205', 'day_id' => '12'], (object) ['id' => '215', 'day_id' => '18'] );
「id」プロパティに基づいてこれらの配列を比較するには、次のように匿名関数を使用できます。
$diff = array_udiff($first_array, $second_array, function ($obj_a, $obj_b) { return $obj_a->id - $obj_b->id; } );
この関数は、2 つのオブジェクトの 'id' 値を減算して違いを判断します。結果の $diff には、2 番目の配列に一致する 'id' 値を持たない最初の配列のオブジェクトが含まれます。
要約すると、array_udiff 関数を使用し、カスタム比較関数を定義することで、開発者は次のことが可能になります。特定のプロパティまたは列に基づいてオブジェクトの配列を比較し、データ分析タスクに柔軟性をもたらします。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3