Maison >développement back-end >tutoriel php >Utilisez des fonctions personnalisées PHP pour étendre les fonctionnalités d'intersection et d'union de tableaux
Étendez les capacités d'intersection et d'union de tableaux avec des fonctions personnalisées PHP, les fonctions d'intersection personnalisées permettent de rechercher des intersections par clé ou valeur, et les fonctions d'union personnalisées trouvent des unions par clé ou valeur. Cela vous donne la flexibilité de manipuler les tableaux en fonction de vos besoins spécifiques.
Utilisez les fonctions personnalisées PHP pour étendre l'intersection et l'union des tableaux
En PHP, l'intersection et l'union sont deux fonctions de manipulation de données fréquemment utilisées. Cependant, nous devons parfois étendre ses fonctionnalités pour répondre à des besoins spécifiques. Ce didacticiel vous guide dans la création de fonctions personnalisées à l'aide de PHP pour améliorer le traitement des intersections et des unions.
Fonction d'intersection personnalisée
La fonction d'intersection personnalisée vous permet de spécifier la clé ou la valeur de l'intersection que vous recherchez. Voici comment le créer :
function custom_array_intersect(array $array1, array $array2, $key_or_value = 'key') { $result = []; foreach ($array1 as $key => $value) { if ($key_or_value == 'key') { if (array_key_exists($key, $array2)) { $result[$key] = $array1[$key]; } } else { if (in_array($value, $array2)) { $result[$key] = $array1[$key]; } } } return $result; }
Fonction d'union personnalisée
De même, vous pouvez créer une fonction d'union personnalisée qui vous permet de spécifier la clé ou la valeur sur laquelle vous souhaitez trouver l'union :
function custom_array_union(array $array1, array $array2, $key_or_value = 'key') { $result = []; foreach ($array1 as $key => $value) { $result[$key] = $array1[$key]; } foreach ($array2 as $key => $value) { if ($key_or_value == 'key') { if (!array_key_exists($key, $result)) { $result[$key] = $array2[$key]; } } else { if (!in_array($value, $result)) { $key_to_use = array_search($value, $array1); if ($key_to_use !== false) { $result[$key_to_use] = $array2[$key]; } else { $new_key = max(array_keys($result)) + 1; $result[$new_key] = $array2[$key]; } } } } return $result; }
Exemple pratique
Voici quelques cas pratiques de deux fonctions personnalisées :
Exemple d'intersection :
$array1 = ['a' => 1, 'b' => 2, 'c' => 3]; $array2 = ['b' => 4, 'c' => 5, 'd' => 6]; $result = custom_array_intersect($array1, $array2, 'key'); print_r($result); // 输出: ['b' => 4, 'c' => 5]
Exemple d'union :
$array1 = ['a' => 1, 'b' => 2, 'c' => 3]; $array2 = ['b' => 4, 'd' => 5, 'e' => 6]; $result = custom_array_union($array1, $array2, 'key'); print_r($result); // 输出: ['a' => 1, 'b' => 4, 'c' => 3, 'd' => 5, 'e' => 6]
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!