En PHP, nous avons souvent besoin de traiter et d'exploiter des tableaux. Parfois, nous devons supprimer les éléments en double dans un tableau. Voici une méthode de déduplication pour les tableaux bidimensionnels.
Méthode 1 : utilisez les fonctions array_map et serialize
La fonction array_map peut appliquer une fonction de rappel à chaque élément du tableau, et la fonction de rappel renvoie un nouvel élément. Nous pouvons utiliser la fonction serialize pour sérialiser chaque élément, puis utiliser la fonction array_unique de PHP pour dédupliquer les éléments sérialisés, et enfin désérialiser les éléments sérialisés en éléments d'origine.
Exemple de code :
function uniqueArray($array) { return array_map("unserialize", array_unique(array_map("serialize", $array))); } // 示例数据 $data = array( array("id" => 1, "name" => "apple"), array("id" => 2, "name" => "banana"), array("id" => 1, "name" => "apple"), array("id" => 3, "name" => "pear") ); // 执行去重操作 $result = uniqueArray($data); // 输出结果 print_r($result);
Résultat de sortie :
Array ( [0] => Array ( [id] => 1 [name] => apple ) [1] => Array ( [id] => 2 [name] => banana ) [3] => Array ( [id] => 3 [name] => pear ) )
Dans le code ci-dessus, nous définissons d'abord une fonction uniqueArray, qui utilise la fonction array_map pour sérialiser chaque élément du tableau, puis utilise la fonction array_unique pour sérialiser le sérialisé. les éléments sont dédupliqués et enfin les éléments sérialisés sont désérialisés en éléments d'origine à l'aide de la fonction de désérialisation.
Méthode 2 : utiliser la fonction array_reduce et la fonction array_merge
En plus d'utiliser la fonction array_map et la fonction sérialiser, nous pouvons également utiliser la fonction array_reduce et la fonction array_merge pour aplatir les éléments du tableau bidimensionnel afin de former un tableau unidimensionnel. Utilisez ensuite la fonction array_unique pour dédupliquer le tableau unidimensionnel, et enfin utilisez la fonction array_map pour reconvertir le tableau unidimensionnel en un tableau bidimensionnel.
Exemple de code :
function uniqueArray($array) { return array_map("unserialize", array_unique(array_map("serialize", array_reduce($array, "array_merge", array())))); } // 示例数据 $data = array( array("id" => 1, "name" => "apple"), array("id" => 2, "name" => "banana"), array("id" => 1, "name" => "apple"), array("id" => 3, "name" => "pear") ); // 执行去重操作 $result = uniqueArray($data); // 输出结果 print_r($result);
Résultat de sortie :
Array ( [0] => Array ( [id] => 1 [name] => apple ) [1] => Array ( [id] => 2 [name] => banana ) [3] => Array ( [id] => 3 [name] => pear ) )
Dans le code ci-dessus, nous définissons d'abord une fonction uniqueArray, qui utilise la fonction array_reduce et la fonction array_merge pour aplatir les éléments du tableau bidimensionnel en un tableau unidimensionnel, puis utilisez la fonction array_map pour sérialiser, dédupliquer et désérialiser les éléments du tableau unidimensionnel, et enfin reconvertir le tableau unidimensionnel en un tableau bidimensionnel.
Résumé
Les deux méthodes ci-dessus peuvent dédupliquer des tableaux bidimensionnels, mais la première méthode utilise la sérialisation pour conserver le type des données d'origine pendant la déduplication, tandis que la deuxième méthode nécessite la seconde Aplatir les éléments dans un tableau 1D puis convertir le tableau 1D en un tableau 2D. La méthode à utiliser peut être choisie en fonction des besoins réels et du volume de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!