Array-Zeilen mit Spaltenwerten in einem flachen Array finden
In diesem Szenario erhalten Sie zwei Arrays: ein ursprüngliches Array, $arr1 , mit mehreren Spalten und einem sekundären Array, $arr2, das eine Liste eindeutiger ID-Werte enthält. Das Ziel besteht darin, $arr1 zu verfeinern, indem nur die Zeilen ausgewählt werden, die einen in $arr2 gefundenen ID-Wert enthalten.
Eine hocheffiziente Lösung für dieses Problem liegt in der Verwendung der Funktion array_uintersect(). Diese Funktion verwendet einen benutzerdefinierten Rückruf, um Elemente aus beiden Eingabearrays zu vergleichen. In diesem benutzerdefinierten Rückruf greifen wir auf Werte aus der Spalte „id“ zu. Wenn diese Spalte fehlt, greifen wir auf den Wert des Parameters zurück.
array_uintersect() nutzt die Sortiertechnik während der Auswertung, um die Ausführungszeit zu optimieren. Durch den Vergleich von Spaltenwerten und ID-Werten werden die Zeilen in $arr1 identifiziert, deren IDs in $arr2 gefunden wurden. Das resultierende Array umfasst nur die ausgewählten Zeilen, die diese Bedingung erfüllen.
Als Referenz finden Sie unten den Code, der diese Lösung implementiert:
var_export( array_uintersect( $arr1, $arr2, fn($a, $b) => ($a['id'] ?? $a) <=> ($b['id'] ?? $b) ) );
Das obige ist der detaillierte Inhalt vonWie finde ich Array-Zeilen mit Spaltenwerten in einem flachen Array mithilfe von Array-Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!