Arrays von Objekten anhand von Spaltenwerten mithilfe von Array-Funktionen vergleichen
Viele Programmiersprachen bieten integrierte Funktionen zum Vergleichen von Arrays. Diese Funktionen funktionieren jedoch normalerweise mit primitiven Datentypen und Arrays, nicht mit Arrays von Objekten. Dies wirft die Frage auf, wie Arrays von Objekten basierend auf einer bestimmten Eigenschaft oder Spalte verglichen werden können.
Um dieses Problem zu beheben, stellt PHP array_udiff bereit, eine Funktion, die den Vergleich von Arrays von Objekten durch Angabe einer benutzerdefinierten Vergleichsfunktion ermöglicht. Betrachten Sie das folgende Beispiel:
$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'] );
Um diese Arrays basierend auf der Eigenschaft „id“ zu vergleichen, können Sie eine anonyme Funktion wie folgt verwenden:
$diff = array_udiff($first_array, $second_array, function ($obj_a, $obj_b) { return $obj_a->id - $obj_b->id; } );
Diese Funktion subtrahiert die „id“-Werte der beiden Objekte, um die Differenz zu ermitteln. Das resultierende $diff enthält die Objekte im ersten Array, die im zweiten Array keinen passenden „id“-Wert haben.
Zusammenfassend lässt sich sagen, dass Entwickler dies durch den Einsatz der Funktion array_udiff und die Definition einer benutzerdefinierten Vergleichsfunktion erreichen können Vergleichen Sie Arrays von Objekten basierend auf bestimmten Eigenschaften oder Spalten und sorgen Sie so für Flexibilität bei Datenanalyseaufgaben.
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