PHP fournit de nombreuses fonctions pour gérer les chaînes, les tableaux, etc. La fonction strnatcasecmp est très utile lors du tri des chaînes naturellement. Grâce à cet article, nous présenterons comment utiliser la fonction strnatcasecmp pour les tableaux dédupliqués.
StrnatcasecMP est une fonction de comparaison de chaînes dans PHP. Il est utilisé pour comparer deux chaînes et effectuer un tri naturel (comparaison numérique naturelle). Contrairement à StrcasecMP traditionnel, StrnatcasecMP gère le tri des cordes de la manière habituelle que les humains le font, c'est-à-dire les nombres de tri par taille numérique plutôt que littéraux.
Sa signature de fonction est:
int strnatcasecmp ( string $string1 , string $string2 )
$ String1 et $ string2 sont deux chaînes à comparer.
Cette fonction renvoie un entier: si la première chaîne est plus petite que la deuxième chaîne, il renvoie une valeur négative; Si les deux chaînes sont égales, elle renvoie 0; Si la première chaîne est supérieure à la deuxième chaîne, elle renvoie une valeur positive.
La déduplication du tableau est une exigence courante dans la programmation PHP, en particulier lors du traitement de grandes tableaux de chaînes. Bien que PHP fournit la fonction Array_Unique , il utilise === par défaut pour déterminer si les deux éléments sont égaux. StranatcasecMP compare les chaînes par le tri naturel, qui peut gérer plus intelligemment certaines exigences de déduplication complexes.
Supposons que nous ayons un tableau contenant des chaînes qui peuvent être similaires mais triées différemment. Nous voulons utiliser StrnatcasecMP pour la déduplication.
<?php
// Exemple de tableau
$array = array("apple10", "apple2", "Apple2", "banana", "apple01", "Apple10");
// Fonction de déduplication personnalisée
function array_unique_natural($array) {
$unique = array();
foreach ($array as $item) {
$found = false;
foreach ($unique as $existing_item) {
// utiliser strnatcasecmp Faire une comparaison,Ignorer le cas
if (strnatcasecmp($item, $existing_item) === 0) {
$found = true;
break;
}
}
if (!$found) {
$unique[] = $item;
}
}
return $unique;
}
// Appelez la fonction de déduplication
$unique_array = array_unique_natural($array);
// Tableau de sortie après déduplication
print_r($unique_array);
?>
Définition d'un tableau : nous définissons un tableau de tableau $ contenant plusieurs chaînes.
Fonction de déduplication personnalisée Array_Unique_Natural : La fonction de cette fonction est d'itérer sur le tableau, de comparer chaque élément avec l'élément existant, et si aucun élément identique n'est trouvé, ajoutez l'élément au tableau $ unique .
Comparaison StrnatcasecMP : la comparaison du tri naturel est effectuée via la fonction StrnatcasecMP , ignorant les différences de cas et étant capable de traiter les différences de nombres dans l'ordre naturel.
Array
(
[0] => apple10
[1] => apple2
[2] => banana
)
Comme vous pouvez le voir, les doublons dans le tableau d'origine sont supprimés et disposés par ordre naturel.
Deduplication et tableau de chaînes avec des nombres : pour les chaînes avec des nombres, strnatcasecmp peut nous aider à éviter une mauvaise divulgation causée par le tri des nombres.
Déplication insensible à la casse : StrnatcasecMP fournit une très bonne solution lorsque vous ne voulez pas de sensibilité à la casse lors de la déduplication.
Traitement des données saisies par les utilisateurs : Dans de nombreux cas, le texte entré par les utilisateurs peut contenir un contenu similaire avec un cas de cas incohérent ou un tri incohérent. Utilisez StrnatcasecMP pour se dédupliquer efficacement.
Nous pouvons également utiliser cette logique de déduplication en conjonction avec d'autres traitements. Par exemple, la déduplication en combinaison avec l'URL ou le chemin du fichier:
<?php
// URL Tableau
$urls = array("http://gitbox.net/page1", "http://gitbox.net/Page1", "http://gitbox.net/page2", "http://gitbox.net/page01");
// Fonction de déduplication personnalisée
$unique_urls = array_unique_natural($urls);
// Sortie après déduplication URL Tableau
print_r($unique_urls);
?>
Dans cet exemple, le nom de domaine de l'URL est remplacé par gitbox.net , et strnatcasecmp peut garantir que la même URL dans différents cas est considérée comme la même.
Grâce à la fonction StrnatcasecMP dans PHP, nous pouvons dédupliquer des tableaux de chaîne plus intelligemment et de manière flexible. Surtout lorsqu'il s'agit de chaînes avec des nombres et des cas irréguliers, StrnatcasecMP fournit un moyen de déduplication très efficace. J'espère que cet article peut vous aider à mieux comprendre et appliquer la fonction strnatcasecmp et résoudre des problèmes pratiques dans le développement.