Aktueller Standort: Startseite> Neueste Artikel> Kombinationstechniken von Array_Filter () und Array_Diff_Ukey ()

Kombinationstechniken von Array_Filter () und Array_Diff_Ukey ()

M66 2025-05-15

Bei der PHP -Programmierung ist die Array -Verarbeitung eines der häufigsten Operationen. Effizientes Verarbeitung von Arrays kann nicht nur die Effizienz der Codeausführung verbessern, sondern auch die Speicherverwendung reduzieren. PHP bietet viele integrierte Array-Funktionen, darunter Array_Filter () und Array_Diff_Ukey () zwei sehr leistungsstarke Funktionen, die uns helfen können, die Effizienz bei der Verarbeitung von Arrays zu verbessern. In diesem Artikel wird vorgestellt, wie diese beiden Funktionen genial verwendet werden, um den Betrieb von PHP -Arrays zu optimieren.

1. Einführung in Array_Filter () und Array_Diff_Ukey () Funktionen

Lassen Sie uns zunächst schnell die grundlegenden Verwendungen dieser beiden Funktionen verstehen:

Array_Filter ()

Die Funktion array_filter () wird verwendet, um Elemente in einem Array zu filtern, und bestimmt, welche Elemente basierend auf der angegebenen Rückruffunktion beibehalten werden sollten. Standardmäßig behält Array_filter () nur Elemente bei, die die Rückruffunktion an true übergeben.

 $arr = [1, 2, 3, 4, 5];
$result = array_filter($arr, function($value) {
    return $value % 2 == 0;  // Halten Sie sogar Zahlen
});
print_r($result);

Ausgabe:

 Array
(
    [1] => 2
    [3] => 4
)

array_diff_ukey ()

Die Funktion array_diff_ukey () wird verwendet, um die Schlüsselnamen von zwei Arrays zu vergleichen und Schlüsselwertpaare zurückzugeben, die im ersten Array vorhanden sind, aber im zweiten Array nicht existieren. Im Gegensatz zu Array_Diff () arbeitet Array_diff_ukey () basierend auf den Schlüsselnamen des Arrays.

 $arr1 = ["a" => 1, "b" => 2, "c" => 3];
$arr2 = ["b" => 4, "c" => 5, "d" => 6];
$result = array_diff_ukey($arr1, $arr2);
print_r($result);

Ausgabe:

 Array
(
    [a] => 1
)

2. Verwenden Sie Array_Filter () und Array_Diff_Ukey () in Kombination

Wenn Sie in mehreren Arrays komplexe Vergleiche durchführen müssen, können Array_Filter () und Array_Diff_Ukey () komplementär verwendet werden, um eine effiziente Datenfilterung und Differenzberechnungen zu erreichen. Angenommen, wir haben zwei Arrays, eines ist ein vollständiges Array und das andere ist ein Filterbedingungsarray. Wir können zuerst Array_Diff_Ukey () verwenden, um die Differenz nach dem Schlüsselnamen zu vergleichen und dann Array_filter () zu verwenden, um die Daten, die wir benötigen, nach dem Wert weiter zu filtern.

Beispielcode:

Angenommen, wir haben zwei Arrays, von denen einer die Bestellinformationen des Benutzers speichert und die andere die deaktivierte Benutzer -ID speichert. Wir müssen übersabte Benutzerbestellungen aus dem Bestellarray herausfiltern.

 // Vollständige Auswahl an Benutzerbestellungen
$orders = [
    'user1' => ['order_id' => 101, 'amount' => 250],
    'user2' => ['order_id' => 102, 'amount' => 300],
    'user3' => ['order_id' => 103, 'amount' => 450],
    'user4' => ['order_id' => 104, 'amount' => 200],
];

// Behinderte Benutzer ID Array
$disabled_users = ['user2', 'user4'];

// verwenden array_diff_ukey() Filtern Sie deaktivierte Benutzerbestellungen heraus
$active_orders = array_diff_ukey($orders, $disabled_users);

// verwenden array_filter() Filterauftragsbetrag,Die Menge an reserviert ist größer als 250 Bestellungen
$filtered_orders = array_filter($active_orders, function($order) {
    return $order['amount'] > 250;
});

print_r($filtered_orders);

Ausgabe:

 Array
(
    [user3] => Array
        (
            [order_id] => 103
            [amount] => 450
        )
)

In diesem Beispiel verwenden wir zuerst Array_Diff_Ukey () , um den deaktivierten Benutzer aus dem Bestellarray zu entfernen und dann Array_filter () zu filtern, um die verbleibenden gültigen Bestellungen zu filtern, und schließlich erhalten wir eine Bestellung mit einem Betrag von mehr als 250.

3. Vorteile der Kombination

  1. Verbesserung der Code -Lesbarkeit : Durch die Verarbeitung von Daten in Stufen wird der Code einfacher zu verstehen. Zunächst wird die Differenz basierend auf dem Schlüsselnamen berechnet, und dann werden die Werte gefiltert.

  2. Vermeiden Sie unnötige Berechnungen : Wir vermeiden eine weitere Verarbeitung irrelevanter Daten, indem wir zunächst Array_Diff_Ukey () verwenden, um Rechenressourcen zu speichern.

  3. Flexibilität : Sie können diese beiden Funktionen frei kombinieren, um die Datenfilterung und den Vergleich in verschiedenen Szenarien flexibel zu verarbeiten.

4. Zusammenfassung

Indem wir array_filter () und array_diff_ukey () clever kombiniert werden, können wir Array -Daten effizienter in PHP verarbeiten. Dieser Ansatz kann uns helfen, unnötige Berechnungen zu reduzieren, die Code -Lesbarkeit zu verbessern und mehr Flexibilität für die spätere Datenverarbeitung und Debuggierung zu bieten.

Ich hoffe, dass Sie in diesem Artikel die Kombination dieser beiden Funktionen besser verstehen und auf tatsächliche PHP -Projekte anwenden können, wodurch die Effizienz der Array -Verarbeitung verbessert wird.