Wie finde ich Array-Unterschiede für Objekt-Arrays basierend auf einer Eigenschaftsspalte?

DDD
Freigeben: 2024-10-23 14:40:57
Original
502 Leute haben es durchsucht

How to Find Array Difference for Object Arrays Based on a Property Column?

Ermitteln der Array-Differenz für Objekt-Arrays basierend auf der Eigenschaftsspalte

Im Bereich der PHP-Programmierung bieten die Funktionen array_diff und array_udiff Mittel zum Bestimmen der Unterschiede zwischen zwei Arrays. Beim Umgang mit Arrays von Objekten ist jedoch ein individueller Ansatz erforderlich.

Ein Array von Objekten, wie das hier gezeigte:

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

stellt eine einzigartige Herausforderung dar, insbesondere wenn man dies wünscht um den Unterschied anhand der Werte einer bestimmten Spalte zu bestimmen, wie etwa „id“ im Beispiel.

Um dieses Problem zu beheben, kommt uns die Funktion array_udiff zu Hilfe. Es benötigt einen dritten Parameter, eine benutzerdefinierte Funktion, die für den Vergleich der Objekte verantwortlich ist. Indem wir eine geeignete Vergleichsfunktion erstellen, können wir array_udiff anweisen, die gewünschte Operation auszuführen.

Hier ist ein Beispiel, wie dies erreicht werden kann:

<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>
Nach dem Login kopieren

In PHP 5.3 können anonyme Funktionen verwendet werden Anstatt eine separate Funktion zu deklarieren:

<code class="php">$diff = array_udiff($first_array, $second_array,
  function ($obj_a, $obj_b) {
    return $obj_a->id - $obj_b->id;
  }
);</code>
Nach dem Login kopieren

Mit diesen Techniken verfügen Sie jetzt über die Möglichkeit, den Unterschied zwischen Arrays von Objekten effektiv zu bestimmen, indem Sie die Werte aus jeder gewünschten Spalte oder Eigenschaft vergleichen.

Das obige ist der detaillierte Inhalt vonWie finde ich Array-Unterschiede für Objekt-Arrays basierend auf einer Eigenschaftsspalte?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage