Wie behalte ich Array-Zeilen mit übereinstimmenden Spaltenwerten aus einem flachen Array bei?

Linda Hamilton
Freigeben: 2024-10-24 04:17:02
Original
502 Leute haben es durchsucht

How to Retain Array Rows with Matching Column Values from a Flat Array?

Array-Zeilen mit übereinstimmenden Spaltenwerten aus einem separaten flachen Array behalten

Gegeben sei ein Array $arr1 mit mehreren Spalten und ein zweites flaches Array $ arr2 enthält eine Liste spezifischer Spaltenwerte. Das Ziel besteht darin, $arr1 zu filtern und nur die Zeilen zu extrahieren, in denen die Werte in einer bestimmten Spalte mit den Elementen in $arr2 übereinstimmen.

Lösung:

Um diese Aufgabe effizient auszuführen, kann array_uintersect() eingesetzt werden. Diese native Funktion nutzt beim Vergleich einen Sortieralgorithmus, um die Ausführungsgeschwindigkeit zu erhöhen. Es sind zwei Arrays und eine benutzerdefinierte Rückruffunktion erforderlich, um die Vergleichslogik zu bestimmen.

Im bereitgestellten Code nutzt die Rückruffunktion die Array-Destrukturierung, um von jedem Element von $arr1 und $arr2 aus auf die ID-Spalte zuzugreifen. Wenn die ID-Spalte nicht vorhanden ist, wird standardmäßig der Wert des Parameters verwendet.

Der Vergleich prüft, ob die ID-Werte beider Arrays gleich sind, um sicherzustellen, dass die Zeilen in $arr1 mit den Werten in $arr2 übereinstimmen. Das Ergebnis ist ein neues Array, das nur die gewünschten Zeilen aus $arr1 enthält.

Dieser Ansatz bietet aufgrund minimierter Funktionsaufrufe und optimierter Ausführungszeit eine überlegene Leistung gegenüber iterativen Aufrufen von in_array().

Das obige ist der detaillierte Inhalt vonWie behalte ich Array-Zeilen mit übereinstimmenden Spaltenwerten aus einem flachen Array bei?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage