En PHP, les tableaux sont des structures de données très couramment utilisées, et il existe de nombreuses fonctions pour le fonctionnement de la matrice. Parmi eux, Array_Diff () et Array_Values () sont deux fonctions de fonctionnement de la table communes. array_diff () est utilisé pour calculer la différence entre deux tableaux, tandis que Array_Values () renvoie un tableau réindexé.
Parfois, nous devons supprimer certains éléments dans le tableau et régénérer l'indice du tableau après avoir supprimé les éléments. Cette exigence est très courante lors de la gestion des tableaux, en particulier lorsque nous supprimons certaines valeurs spécifiques du tableau, nous voulons régénérer les indices consécutifs. Ce qui suit montrera comment utiliser array_diff () et array_values () en combinaison pour atteindre cette fonction.
La fonction Array_Diff () est utilisée pour calculer la différence entre deux tableaux ou plus, renvoyant un tableau d'éléments contenus dans le premier tableau mais pas dans d'autres tableaux.
Par exemple:
$array1 = [1, 2, 3, 4];
$array2 = [2, 4];
$result = array_diff($array1, $array2);
print_r($result);
Sortir:
Array
(
[0] => 1
[2] => 3
)
Dans cet exemple, Array_Diff () renvoie un tableau contenant des éléments dans Array1 mais pas dans Array2 , et les éléments 2 et 4 sont supprimés.
Lorsque nous supprimons certains éléments à l'aide de Array_Diff () , l'indice du tableau résultant peut devenir discontinu. Pour régénérer l'indice du tableau, nous pouvons utiliser array_values () . array_values () renvoie un nouveau tableau avec l'index à partir de 0 et réorganisé les éléments du tableau.
Par exemple:
$array = [10 => 'a', 11 => 'b', 12 => 'c'];
$array = array_values($array);
print_r($array);
Sortir:
Array
(
[0] => a
[1] => b
[2] => c
)
Maintenant, nous pouvons combiner array_diff () et array_values () pour implémenter la fonction de suppression des éléments du tableau et des index de reconstruction. Supposons que nous ayons un tableau où nous devons en retirer certains éléments spécifiés et que l'indice de tableau final recommence à partir de 0 .
Exemple de code:
// Tableau d'origine
$array1 = [1, 2, 3, 4, 5, 6, 7];
// Supprimer la valeur comme 2 et 4 Éléments
$array2 = [2, 4];
$result = array_diff($array1, $array2);
// Réindex
$result = array_values($result);
print_r($result);
Sortir:
Array
(
[0] => 1
[1] => 3
[2] => 5
[3] => 6
[4] => 7
)
Dans cet exemple, nous utilisons d'abord Array_Diff () pour supprimer des éléments avec les valeurs 2 et 4 , puis reconstruire l'index via array_values () afin que l'index du tableau de résultat commence à partir de 0 , garantissant la continuité.
Cette méthode est très adaptée aux scènes où l'indice du tableau est garanti pour être continu après que certains éléments doivent être supprimés du tableau. Par exemple, lorsque vous traitez les données des utilisateurs, la suppression de certains éléments indésirables et des réindexes peut éviter les problèmes dans les opérations ultérieures.
En combinant array_diff () et array_values () , nous pouvons facilement supprimer des éléments spécifiques du tableau et régénérer un tableau indexé continu. Cette approche est très utile pour traiter les opérations complexes de tableau, simplifier le code et augmenter l'efficacité.