En PHP, la gestion des différences de tableaux est une opération courante, en particulier lors de la réalisation de comparaisons de données. array_chunk et array_diff sont deux fonctions très pratiques qui peuvent nous aider à trouver efficacement les différences entre les tableaux. Cet article présentera ces deux fonctions et montrera comment implémenter une recherche rapide sur la différence de tableau à travers eux.
La fonction Array_Chunk est utilisée pour diviser un grand tableau en plusieurs petits tableaux. Il reçoit deux paramètres:
Tableau d'origine;
Le nombre d'éléments chaque tableau partagé contient.
De cette façon, nous pouvons diviser un grand tableau en plusieurs petits tableaux. Lors du traitement de grandes quantités de données, le traitement des blocs améliore parfois les performances.
<?php
$array = range(1, 10); // Créer un conteneur 1 arriver 10 Tableau de
$chunkedArray = array_chunk($array, 3); // Mettez le tableau dans chacun 3 Divisez les éléments en une seule pièce
print_r($chunkedArray);
?>
Résultat de sortie:
Array
(
[0] => Array ( [0] => 1 [1] => 2 [2] => 3 )
[1] => Array ( [0] => 4 [1] => 5 [2] => 6 )
[2] => Array ( [0] => 7 [1] => 8 [2] => 9 )
[3] => Array ( [0] => 10 )
)
La fonction Array_Diff est utilisée pour comparer deux tableaux ou plus et renvoyer un tableau contenant les différences. Plus précisément, il renvoie des éléments dans le tableau d'origine qui sont différents des autres tableaux.
<?php
$array1 = [1, 2, 3, 4, 5];
$array2 = [4, 5, 6, 7];
$diff = array_diff($array1, $array2); // Trouver $array1 et $array2 La différence
print_r($diff);
?>
Résultat de sortie:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
Dans l'exemple ci-dessus, Array_Diff compare $ array1 et $ array2 et renvoie des éléments dans $ array1 mais pas dans $ array2 .
Maintenant, nous pouvons combiner ces deux fonctions pour trouver efficacement les différences entre les tableaux. Par exemple, supposons que nous ayons deux grandes tableaux, nous pouvons d'abord les diviser par bloc, puis effectuer des comparaisons différentielles séparément.
<?php
$array1 = range(1, 20); // Créer un 1 arriver 20 Tableau de
$array2 = range(10, 30); // Créer un 10 arriver 30 Tableau de
// Mettez deux tableaux dans chacun 5 Les éléments sont divisés en morceaux
$chunkedArray1 = array_chunk($array1, 5);
$chunkedArray2 = array_chunk($array2, 5);
// 找出每个块之间La différence
foreach ($chunkedArray1 as $chunk1) {
foreach ($chunkedArray2 as $chunk2) {
$diff = array_diff($chunk1, $chunk2); // Trouver每个分块之间La différence
if (!empty($diff)) {
echo "Différences: \n";
print_r($diff);
}
}
}
?>
La sortie peut être similaire à:
Différences:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
Différences:
Array
(
[0] => 6
[1] => 7
[2] => 8
[3] => 9
)
La combinaison des fonctions Array_Chunk et Array_Diff peut gérer efficacement certains problèmes pratiques. Par exemple, dans le traitement des mégadonnées, il est souvent nécessaire de comparer les données en blocs pour trouver la différence entre chaque élément de données et d'autres données. Grâce au traitement des blocs, l'utilisation de la mémoire peut être plus efficace et éviter de charger trop de données en même temps.
Résumer
Dans cet article, nous introduisons comment utiliser les fonctions Array_Chunk et Array_Diff de PHP pour trouver efficacement les différences entre les tableaux. Array_chunk nous aide à mieux traiter en divisant de grands tableaux en petits morceaux; Array_diff nous permet de trouver les différences entre deux tableaux. En combinant ces deux fonctions, les performances et simplifier la logique du code lors du traitement des mégadonnées.