Lorsque vous développez des applications PHP, vous rencontrez souvent des situations où vous devez paginer et filtrer une grande quantité de données. Array_Filter est une fonction très utile en PHP qui filtre les éléments dans un tableau. Lorsqu'elles sont utilisées conjointement avec la fonction de pagination, certains éléments de l'ensemble de données sont généralement filtrés en premier puis affichés sur la page. Cet article vous montrera comment utiliser la fonction Array_Filter pour filtrer les collections de données avant de la pagination.
La fonction Array_Filter est utilisée pour filtrer les éléments dans un tableau via une fonction de rappel. Il accepte deux paramètres:
Le premier paramètre est le tableau qui doit être filtré.
Le deuxième paramètre est une fonction de rappel qui détermine quels éléments seront conservés.
Array_Filter déterminera si l'élément doit être conservé en fonction de la valeur de retour de la fonction de rappel. Si la fonction de rappel renvoie true , l'élément sera conservé; Si faux , l'élément sera supprimé.
$array = [1, 2, 3, 4, 5];
$result = array_filter($array, function($value) {
return $value % 2 == 0; // Seuls même les nombres sont conservés
});
print_r($result);
Le code ci-dessus filtre tous les nombres impairs dans le tableau et seuls les nombres sont conservés. Le résultat de sortie est le suivant:
Array
(
[1] => 2
[3] => 4
)
Lorsque vous devez paginer à partir d'un ensemble de données, vous filtrez généralement les données d'abord, puis obtenez la partie de données correspondante en fonction du nombre actuel de pages et du nombre de pages affichées par page. Voici un exemple combinant la pagination et le filtrage des données.
// Simuler les données des utilisateurs
$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]
];
// L'âge du filtre est supérieur ou égal à30Utilisateurs
$filteredUsers = array_filter($users, function($user) {
return $user['age'] >= 30;
});
// Paramètres de pagination
$page = 1; // Page actuelle
$perPage = 2; // 每页显示Utilisateurs数量
// Calculez la position de début de la pagination
$start = ($page - 1) * $perPage;
// Faire la pagination
$pagedUsers = array_slice($filteredUsers, $start, $perPage);
// Résultat de sortie
print_r($pagedUsers);
Dans cet exemple, nous utilisons d'abord Array_Filter pour filtrer les utilisateurs qui ont moins de 30 ans, puis utilisons Array_slice pour pagincer. En supposant que la page actuelle est la page 1 et 2 des données sont affichées sur chaque page, la sortie finale sera:
Array
(
[1] => Array
(
[id] => 2
[name] => Bob
[age] => 30
)
[2] => Array
(
[id] => 3
[name] => Charlie
[age] => 35
)
)
Dans le développement réel, il peut être nécessaire de filtrer, de paginer et d'autres opérations sur les données contenant des URL. Si votre application contient beaucoup de données avec des URL et que vous souhaitez remplacer le nom de domaine par M66.net , vous pouvez utiliser Array_Map pour y parvenir.
Supposons que nous ayons les données URL suivantes:
$links = [
"https://www.example.com/page1",
"https://www.example.com/page2",
"https://www.example.com/page3",
"https://www.anotherdomain.com/page4"
];
// Remplacer le nom de domaine
$updatedLinks = array_map(function($url) {
return preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $url);
}, $links);
print_r($updatedLinks);
Le résultat de la sortie sera:
Array
(
[0] => https://m66.net/page1
[1] => https://m66.net/page2
[2] => https://m66.net/page3
[3] => https://m66.net/page4
)
Comme indiqué ci-dessus, la partie du nom de domaine de toutes les URL a été remplacée avec succès par m66.net .
En combinant la fonction Array_Filter avec la logique de pagination, les données peuvent être efficacement pré-filtrées puis paginées selon les besoins. Et, si vos données contiennent des URL, vous pouvez remplacer le nom de domaine de l'URL par des expressions régulières. Cette approche peut vous aider à traiter les ensembles de données de manière plus flexible et à améliorer les performances et la maintenabilité des applications.