Bei der PHP -Programmierung sind Array -Operationen eine der häufigsten Aufgaben. Insbesondere beim Umgang mit mehrdimensionalen Arrays oder beim Filtern von Schlüsselwertpaaren bietet PHP viele Funktionen, um diese Art von Betrieb zu vereinfachen. Unter ihnen können die Funktionen von Array_Fill_Keys und Array_intersect_key uns effizient helfen, Schlüsselfilterung durchzuführen, insbesondere wenn bestimmte Schlüssel gefiltert werden müssen, können sie die Lesbarkeit und Ausführungseffizienz des Codes erheblich verbessern.
array_fill_keys
Diese Funktion erstellt ein neues Array, dessen Schlüssel die Werte im angegebenen Array sind, und die Werte, die allen Tasten entsprechen, werden mit denselben Werten gefüllt. Diese Funktion ist sehr geeignet, um ein neues Array mit einem bestimmten Schlüssel zu initialisieren.
array_fill_keys(array $keys, mixed $value): array
$ KEYS : Eine Reihe von Schlüssel, die den Schlüssel anzeigen, den Sie im Neuarray verwenden möchten.
$ Wert : Der Wert, der jedem Schlüssel entspricht.
Diese Funktion gibt ein Array zurück, das Elemente im ursprünglichen Array mit derselben Taste wie das angegebene Array enthält. Es ist perfekt, um die Schlüsselwertpaare zu extrahieren, die wir aus einem großen Array benötigen.
array_intersect_key(array $array1, array $array2): array
$ Array1 : Das ursprüngliche Array.
$ Array2 : Ein Array, dessen Schlüssel zum Original -Array entspricht.
Angenommen, wir haben eine Reihe mehrerer Benutzerinformationen, die eine große Anzahl von Schlüssel enthalten, und wir möchten nur einige spezifische Schlüssel führen. Der traditionelle Ansatz kann darin bestehen, Arrays zu durchqueren und bedingte Urteile zu fällen, während die Verwendung von Array_Fill_Keys und Array_intersect_Keys unseren Code prägnanter und effizienter gestalten.
Angenommen, es gibt ein Array mit Benutzerinformationen:
$user_info = [
'name' => 'John',
'email' => 'john@example.com',
'age' => 30,
'address' => '123 Main St',
'phone' => '123-456-7890'
];
Wir kümmern uns nur um den Namen , die E -Mail und das Alter des Benutzers und benötigen keine anderen Schlüssel (z. B. Adresse und Telefon ). Im Folgenden wird angezeigt, wie die Schlüsselfilterung durch array_fill_keys und array_intersect_key implementiert werden.
// Schlüssel, die beibehalten werden müssen
$keys_to_keep = ['name', 'email', 'age'];
// Erstellen Sie ein neues Array mit den erforderlichen Schlüssel,Der Wert ist null
$empty_keys = array_fill_keys($keys_to_keep, null);
// verwenden array_intersect_key Filtern Sie unnötige Schlüssel heraus
$filtered_user_info = array_intersect_key($user_info, $empty_keys);
print_r($filtered_user_info);
Array
(
[name] => John
[email] => john@example.com
[age] => 30
)
Verwenden Sie Array_Fill_Keys ($ keys_to_keep, null) , um ein neues Array $ lese_keys zu erstellen, dessen Schlüssel diejenigen sind, die wir behalten müssen, und der Wert ist null . Die Funktion dieses Arrays besteht darin, als Vorlage zum Filtertasten zu dienen.
Verwenden Sie Array_intersect_key ($ user_info, $ leere_keys) , um dieselben Elemente im $ user_info -Array wie die $ lese_keys aufzubewahren, wodurch unnötige Schlüssel herausgefiltert wird.
Die Vorteile dieser Methode sind:
Keine Notwendigkeit, eine Foreach -Schleife zu verwenden.
Die Filterung von Schlüssel kann sehr präzise erreicht werden.
Wenn das Array groß ist, ist die Leistung von array_intersect_key effizienter als die für die Foreach -Schleife.
Zusätzlich zum Filtertasten aus einem Array kann Array_intersect_key auch verwendet werden, um gemeinsame Schlüssel aus mehreren Arrays zu filtern. Angenommen, wir haben zwei Arrays, eine mit Benutzerinformationen und die andere, die Informationen über Administratoren enthalten.
$user_info = [
'name' => 'John',
'email' => 'john@example.com',
'age' => 30,
'address' => '123 Main St',
'phone' => '123-456-7890'
];
$admin_info = [
'name' => 'John',
'email' => 'john@example.com',
'role' => 'admin'
];
// Holen Sie sich den gemeinsamen Schlüssel von zwei Arrays
$common_keys = array_intersect_key($user_info, $admin_info);
print_r($common_keys);
Array
(
[name] => John
[email] => john@example.com
)
Array_intersect_key vergleicht die Schlüssel von zwei Arrays und gibt Elemente mit demselben Schlüssel zurück.
Durch Kombinieren von Array_Fill_Keys und Array_intersect_Keys können wir die Array -Taste -Filterung sehr effizient verwenden. Diese Methode verbessert nicht nur die Lesbarkeit des Codes, sondern bietet auch eine bessere Leistung bei der Verarbeitung großer Datenmengen. Unabhängig davon, ob es sich um Filtertasten aus einem Array handelt oder gemeinsame Schlüssel aus mehreren Arrays extrahiert, bieten uns beide Funktionen einen großen Komfort.
Ich hoffe, dieser Artikel kann Ihnen helfen, zu verstehen, wie Sie diese beiden Funktionen verwenden, um effiziente wichtige Filtervorgänge auszuführen und Ihre PHP -Programmierfunktionen zu verbessern!