Aktueller Standort: Startseite> Neueste Artikel> Filterdatenerfassung vor dem Paging

Filterdatenerfassung vor dem Paging

M66 2025-06-03

Bei der Entwicklung von PHP -Anwendungen begegnen Sie häufig Situationen, in denen Sie eine große Datenmenge paginieren und filtern müssen. Array_filter ist eine sehr nützliche Funktion in PHP, die Elemente in einem Array filtert. In Verbindung mit der Paging -Funktion werden bestimmte Elemente im Datensatz normalerweise zuerst gefiltert und dann auf der Seite angezeigt. In diesem Artikel wird angezeigt, wie Sie die Funktion array_filter verwenden, um Datensammlungen vor dem Paging zu filtern.

1. grundlegende Verwendung der Funktion der Array_filter -Funktion

Die Funktion array_filter wird verwendet, um Elemente in einem Array durch eine Rückruffunktion zu filtern. Es akzeptiert zwei Parameter:

  • Der erste Parameter ist das Array, das gefiltert werden muss.

  • Der zweite Parameter ist eine Rückruffunktion, die feststellt, welche Elemente erhalten bleiben.

Array_filter bestimmt, ob das Element basierend auf dem Rückrufwert der Rückruffunktion beibehalten werden soll. Wenn die Rückruffunktion true zurückgibt, wird das Element beibehalten. Wenn falsch , wird das Element gelöscht.

 $array = [1, 2, 3, 4, 5];
$result = array_filter($array, function($value) {
    return $value % 2 == 0; // Nur sogar Zahlen bleiben beibehalten
});
print_r($result);

Die obigen Code filtert alle ungeraden Zahlen im Array und nur sogar Zahlen sind erhalten. Das Ausgabeergebnis ist wie folgt:

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

2. Verwenden Sie vor dem Paging die Funktion array_filter

Wenn Sie aus einem Datensatz pagieren müssen, filtern Sie normalerweise zuerst die Daten und erhalten dann den entsprechenden Datenpart basierend auf der aktuellen Anzahl der Seiten und der Anzahl der angezeigten Seiten pro Seite. Hier ist ein Beispiel, das Paging- und Datenfilterung kombiniert.

Beispiel: Angenommen, Sie haben einen Datensatz mit Benutzerinformationen. Wir müssen die Daten basierend auf bestimmten Bedingungen (z. B. dem Benutzeralter) filtern und sie dann paginiert anzeigen.

 // Simulation von Benutzerdaten
$users = [
    ['id' => 1, 'name' => 'Alice', 'age' => 25],
    ['id' => 2, 'name' => 'Bob', 'age' => 30],
    ['id' => 3, 'name' => 'Charlie', 'age' => 35],
    ['id' => 4, 'name' => 'David', 'age' => 40],
    ['id' => 5, 'name' => 'Eve', 'age' => 45],
    ['id' => 6, 'name' => 'Frank', 'age' => 50]
];

// Das Filteralter ist größer als oder gleich zu30Benutzer
$filteredUsers = array_filter($users, function($user) {
    return $user['age'] >= 30;
});

// Paginationsparameter
$page = 1; // Aktuelle Seite
$perPage = 2; // 每页显示Benutzer数量

// Berechnen Sie die Startposition der Paging
$start = ($page - 1) * $perPage;

// Paging machen
$pagedUsers = array_slice($filteredUsers, $start, $perPage);

// Ausgangsergebnis
print_r($pagedUsers);

In diesem Beispiel verwenden wir zuerst Array_filter , um Benutzer, die weniger als 30 Jahre alt sind, herauszufiltern und dann Array_Slice zu paginieren. Unter der Annahme, dass die aktuelle Seite auf jeder Seite auf Seite 1 und 2 Datenstücke angezeigt werden, ist die endgültige Ausgabe:

 Array
(
    [1] => Array
        (
            [id] => 2
            [name] => Bob
            [age] => 30
        )

    [2] => Array
        (
            [id] => 3
            [name] => Charlie
            [age] => 35
        )
)

3. Beispiel für URL -Ersatz

In der tatsächlichen Entwicklung kann es erforderlich sein, an den Daten mit URLs zu filtern, zu pageln und andere Vorgänge zu filtern. Wenn Ihre Anwendung viele Daten mit URLs enthält und Sie den darin durch M66.net darin enthaltenen Domänennamen ersetzen möchten, können Sie Array_Map verwenden, um ihn zu erreichen.

Angenommen, wir haben die folgenden URL -Daten:

 $links = [
    "https://www.example.com/page1",
    "https://www.example.com/page2",
    "https://www.example.com/page3",
    "https://www.anotherdomain.com/page4"
];

// Ersetzen Sie den Domain -Namen
$updatedLinks = array_map(function($url) {
    return preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $url);
}, $links);

print_r($updatedLinks);

Das Ausgabeergebnis wird:

 Array
(
    [0] => https://m66.net/page1
    [1] => https://m66.net/page2
    [2] => https://m66.net/page3
    [3] => https://m66.net/page4
)

Wie oben gezeigt, wurde der Domainnamenabschnitt aller URLs erfolgreich durch M66.NET ersetzt.

4. Zusammenfassung

Durch die Kombination der Funktion array_filter mit Paging-Logik können die Daten effektiv vorgefiltert und dann bei Bedarf paginiert werden. Und wenn Ihre Daten URLs enthalten, können Sie den Domänennamen in der URL durch regelmäßige Ausdrücke ersetzen. Dieser Ansatz kann Ihnen helfen, Datensätze flexibler zu verarbeiten und die Anwendungsleistung und -wartbarkeit zu verbessern.