ホームページ  >  記事  >  バックエンド開発  >  配列関数を使用して列の値によってオブジェクトの配列を比較する方法

配列関数を使用して列の値によってオブジェクトの配列を比較する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-23 15:17:02652ブラウズ

How to Compare Arrays of Objects by Column Values Using Array Functions?

配列関数を使用した列値によるオブジェクトの配列の比較

多くのプログラミング言語には、配列を比較するための組み込み関数が用意されています。ただし、これらの関数は通常、オブジェクトの配列ではなく、プリミティブ データ型と配列を処理します。このため、特定のプロパティまたは列に基づいてオブジェクトの配列を比較する方法という問題が生じます。

これに対処するために、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;
    }
);

この関数は、「id」を減算します。 ' 2 つのオブジェクトの値を調べて違いを判断します。結果の $diff には、2 番目の配列に一致する 'id' 値を持たない最初の配列のオブジェクトが含まれます。

要約すると、array_udiff 関数を使用し、カスタム比較関数を定義することで、開発者は次のことが可能になります。特定のプロパティまたは列に基づいてオブジェクトの配列を比較し、データ分析タスクに柔軟性をもたらします。

以上が配列関数を使用して列の値によってオブジェクトの配列を比較する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。