Aktueller Standort: Startseite> Neueste Artikel> Wie filtern Sie mehrere IDs in einem Array effizient mit Filter_id und Array_Map () kombiniert?

Wie filtern Sie mehrere IDs in einem Array effizient mit Filter_id und Array_Map () kombiniert?

M66 2025-06-14

Wie filtern Sie mehrere IDs in einem Array effizient mit Filter_id und Array_Map () kombiniert?

In PHP müssen wir häufig Elemente herausfiltern, die bestimmte Kriterien aus einem größeren Array erfüllen. Angenommen, Sie haben ein Array mit mehreren Elementen und möchten nur bestimmte IDs beibehalten. Eine gemeinsame Methode besteht darin, die Kombination von Filter_ID und Array_Map () Funktionen zu verwenden. Als nächstes werden wir erklären, wie Sie mehrere IDs in einem Array effizient filtern können.

1. Verstehen Sie filter_id und array_map () Funktionen

  • filter_id : Die Hauptfunktion dieser Funktion besteht darin, jedes Element im Array zu beurteilen und Elemente herauszufiltern, die bestimmte Bedingungen erfüllen. Es wird normalerweise mit Rückruffunktionen verwendet, sodass Sie basierend auf den benutzerdefinierten Bedingungen filtern können.

  • Array_map () : Diese Funktion führt in jedem Element im Array einen Rückrufvorgang aus. Im Gegensatz zu Filter_ID filtert es nicht, sondern wendet eine Operation (wie Transformation, Änderung usw.) auf jedes Element des Arrays an.

2. Verwenden Sie array_map () , um Elemente zu verarbeiten

Wenn Sie Filter_ID und Array_Map () kombinieren, können wir zuerst Array_Map () verwenden, um Elemente im Array zu verarbeiten und das Elementformat oder die Struktur zurückzugeben, die Sie filtern möchten. Als nächstes wird filter_id zur bedingten Filterung verwendet.

Zum Beispiel möchten wir gültige IDs aus der ID -Liste eines Benutzers herausfiltern:

 <?php
// Angenommen, dies ist unser ursprünglicher Benutzer ID Array
$user_ids = [101, 102, 103, 104, 105, 106];

// Definition gültig ID Reichweite von
$valid_ids = [101, 103, 105];

// verwenden array_map() 对原始Array进行处理
$mapped_ids = array_map(function($id) {
    return 'http://m66.net/user/' . $id;
}, $user_ids);

// verwenden filter_id Filtern effektiv ID
$filtered_ids = array_filter($mapped_ids, function($url) use ($valid_ids) {
    // Extrakt URL Intern ID,Und bestimmen, ob es gültig ist
    preg_match('/user\/(\d+)/', $url, $matches);
    return in_array($matches[1], $valid_ids);
});

// Ausgang gefiltert ID Liste
print_r($filtered_ids);
?>

3. Ausgangsergebnis

Das Ausgabeergebnis des obigen Codes lautet:

 Array
(
    [0] => http://m66.net/user/101
    [2] => http://m66.net/user/103
    [4] => http://m66.net/user/105
)

In diesem Beispiel verwenden wir zuerst Array_Map () , um ein neues Array zu generieren, das die URL enthält, indem wir jeder ID einen Domänennamen hinzufügen. Verwenden Sie als Nächstes Array_filter () , um diese URLs zu filtern und nur gültige IDs (d. H. IDs, die im Array $ valid_ids angezeigt werden).

4. So optimieren Sie diesen Code

Obwohl der obige Code in praktischen Anwendungen voll funktionsfähig ist, möchten Sie möglicherweise die Effizienz verbessern, insbesondere wenn das Array sehr groß ist. Sie können die zeitliche Komplexität der Verarbeitung reduzieren, indem Sie Filter- und Kartierungsvorgänge in eine einzelne Schleife kombinieren. Wir können den dritten Parameter von Array_filter () verwenden, um diese Optimierung zu erreichen.