Wie können Sie Objekte in Arrays anhand von Eigenschaftswerten vergleichen?

Linda Hamilton
Freigeben: 2024-10-23 14:50:43
Original
781 Leute haben es durchsucht

How Can You Compare Objects in Arrays Based on Property Values?

Objekte in Arrays anhand von Eigenschaftswerten vergleichen

Die Bestimmung der Unterschiede zwischen zwei Arrays von Objekten kann eine Herausforderung sein. Während Funktionen wie array_diff und array_udiff für Standardarrays existieren, erfordern Objekte einen benutzerdefinierten Ansatz.

Um Objekte basierend auf einer bestimmten Eigenschaft zu vergleichen, befolgen Sie diese Schritte:

  1. Definieren Sie a Vergleichsfunktion: Erstellen Sie eine Funktion, die zwei Objekte als Parameter verwendet und die Differenz zwischen ihren gewünschten Eigenschaftswerten zurückgibt.
  2. Verwenden Sie array_udiff mit der Vergleichsfunktion: Übergeben Sie die Arrays von Objekten und die Vergleichsfunktion zu array_udiff. Diese Funktion verwendet die Vergleichsfunktion, um die Unterschiede zwischen den Objekten zu ermitteln.

Betrachten Sie beispielsweise die folgenden Arrays von Objekten:

array(4) {
    [0]=>
        object(stdClass)#32 (9) {
            ["id"]=>
            string(3) "205"
            ["day_id"]=>
            string(2) "12"
        }
}
Nach dem Login kopieren

Um den Unterschied zwischen ihnen basierend zu ermitteln Definieren Sie für die Eigenschaft „id“ eine Vergleichsfunktion wie diese:

function compare_objects($obj_a, $obj_b) {
  return $obj_a->id - $obj_b->id;
}
Nach dem Login kopieren

Verwenden Sie dann array_udiff, um die Arrays zu vergleichen:

$diff = array_udiff($first_array, $second_array, 'compare_objects');
Nach dem Login kopieren

Alternativ, wenn Sie PHP >= 5.3 verwenden, können Sie kann eine anonyme Funktion verwenden:

$diff = array_udiff($first_array, $second_array,
  function ($obj_a, $obj_b) {
    return $obj_a->id - $obj_b->id;
  }
);
Nach dem Login kopieren

Mit diesem Ansatz können Sie Objekte in Arrays basierend auf Ihren gewünschten Eigenschaftswerten effizient vergleichen.

Das obige ist der detaillierte Inhalt vonWie können Sie Objekte in Arrays anhand von Eigenschaftswerten vergleichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage