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:
Betrachten Sie beispielsweise die folgenden Arrays von Objekten:
array(4) { [0]=> object(stdClass)#32 (9) { ["id"]=> string(3) "205" ["day_id"]=> string(2) "12" } }
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; }
Verwenden Sie dann array_udiff, um die Arrays zu vergleichen:
$diff = array_udiff($first_array, $second_array, 'compare_objects');
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; } );
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!