„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie finde ich Array-Unterschiede für Objekt-Arrays basierend auf einer Eigenschaftsspalte?

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

Veröffentlicht am 21.11.2024
Durchsuche:620

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

Array-Unterschiede für Objekt-Arrays basierend auf der Eigenschaftsspalte ermitteln

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

Ein Array von Objekten, wie das hier gezeigte:

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

stellt eine einzigartige Herausforderung dar, insbesondere wenn man den Unterschied anhand der Werte einer bestimmten Spalte ermitteln möchte, wie beispielsweise „id“ im Beispiel.

Um dieses Problem zu beheben, kommt die Funktion array_udiff zu unserer 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:

function compare_objects($obj_a, $obj_b) {
  return $obj_a->id - $obj_b->id;
}

$diff = array_udiff($first_array, $second_array, 'compare_objects');

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

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

Mit diesen Techniken verfügen Sie nun ü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.

Freigabeerklärung Dieser Artikel wird reproduziert unter: 1729665317 Wenn ein Verstoß vorliegt, wenden Sie sich bitte an [email protected], um ihn zu löschen.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3