Dans PHP, Array_Chunk et Array_Walk sont deux fonctions de fonctionnement de la table très couramment utilisées. Ils sont utilisés pour couper le tableau en morceaux plus petits et pour exécuter des fonctions de rappel sur chaque élément du tableau. Aujourd'hui, nous discuterons de la façon d'utiliser ces deux fonctions en combinaison pour implémenter les opérations de mise à jour par lots sur les tableaux.
La fonction Array_Chunk divise un grand tableau en plusieurs petits morceaux de tableau. Sa syntaxe de base est la suivante:
array_chunk(array $array, int $size, bool $preserve_keys = false): array
$ Array : le tableau d'origine à diviser.
$ Taille : la taille de chaque petite pièce.
$ Preserve_keys : s'il faut préserver les clés du tableau d'origine.
Array_chunk renvoie un tableau multidimensionnel, chaque sous-réseau ayant une taille maximale de la taille $ spécifiée.
La fonction Array_Walk est utilisée pour itérer le tableau et appliquer la fonction de rappel spécifiée à chaque élément. Sa syntaxe de base est la suivante:
array_walk(array &$array, callable $callback): bool
$ Array : Le tableau à utiliser, passé par référence.
$ rappel : une fonction de rappel utilisée pour traiter chaque élément de tableau.
Array_Walk applique une fonction de rappel à chaque élément du tableau, et la fonction de rappel reçoit la valeur et la clé de l'élément de tableau actuel sous forme de paramètres.
Supposons que nous ayons un tableau avec beaucoup de données, et que nous voulons mettre à jour par lots le tableau (par exemple, modifier certaines valeurs dans le tableau ou ajouter de nouvelles informations au tableau). Pour éviter le traitement unique de l'ensemble du tableau, nous pouvons diviser le tableau en plusieurs petits morceaux via Array_Chunk , puis effectuer des opérations de mise à jour via Array_Walk .
Voici un exemple d'utilisation de Array_Chunk et Array_Walk pour implémenter les mises à jour par lots. Supposons que nous voulons traiter un tableau avec plusieurs adresses URL et que nous devons modifier le nom de domaine dans toutes les URL en m66.net .
<?php
// Tableau d'origine,Contient plusieurs URL
$urls = [
'http://www.example.com/path1',
'https://www.example.com/path2',
'http://www.example.com/path3',
'https://www.example.com/path4',
];
// utiliser array_chunk 将Tableau d'origine分成每块最多 2 Éléments
$chunks = array_chunk($urls, 2);
// 遍历每个小块并utiliser array_walk 来修改每Éléments
foreach ($chunks as &$chunk) {
// utiliser array_walk Modifier les éléments dans chaque bloc
array_walk($chunk, function(&$url) {
// Remplacer le nom de domaine comme m66.net
$url = preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $url);
});
}
// Sortie des résultats mis à jour
foreach ($chunks as $chunk) {
print_r($chunk);
}
?>
Nous définissons d'abord un tableau URL $ contenant plusieurs URL.
Ensuite, utilisez Array_Chunk pour diviser le tableau en petits morceaux de taille 2. De cette façon, $ Chunks deviendra un tableau bidimensionnel, chaque sous-réseau contient jusqu'à 2 éléments.
Ensuite, nous utilisons Array_Walk pour itérer dans chaque sous-réseau (c'est-à-dire chaque petit bloc) et remplacer la partie de nom de domaine de chaque URL par m66.net via une expression régulière.
Enfin, nous sortions le tableau modifié.
Optimisation des performances : Array_Chunk divise les grandes tableaux en petits morceaux, ce qui peut réduire la consommation de mémoire et le volume de calcul par fonctionnement, en particulier lorsqu'ils traitent de très grands ensembles de données.
Flexibilité : utilisez Array_Walk pour personnaliser facilement les données dans chaque morceau, telles que la modification de certains champs, le remplacement des chaînes, etc.
Traitement des données par lots, telles que les mises à jour des enregistrements de base de données, les demandes d'API par lots, etc.
Nettoyage des données, remplacement des chaînes et autres opérations.
En combinant array_chunk et array_walk , nous pouvons facilement effectuer des opérations de mise à jour par lots sur de grands tableaux. Tout d'abord, divisez le tableau en morceaux plus petits via array_chunk , puis utilisez array_walk pour mettre à jour chaque élément un par un. Cette approche simplifie non seulement la logique du code, mais améliore également la mémoire et l'efficacité des performances.
J'espère que cet article vous aidera à comprendre comment utiliser ces deux fonctions en PHP pour gérer les tâches de mise à jour par lots des tableaux. Si vous avez des questions ou des besoins supplémentaires, n'hésitez pas à communiquer!