Position actuelle: Accueil> Derniers articles> Explication détaillée de la façon de compter le nombre d'occurrences d'un certain caractère dans une chaîne en utilisant la fonction substr_count

Explication détaillée de la façon de compter le nombre d'occurrences d'un certain caractère dans une chaîne en utilisant la fonction substr_count

gitbox 2025-06-15

1. Syntaxe de base de la fonction substr_count ()

La syntaxe de base de la fonction substr_count () est la suivante:

 substr_count(string $haystack, string $needle, int $offset = 0, int $length = NULL): int
  • $ Haystack : la chaîne principale à rechercher.

  • $ aiguille : la sous-chaîne (ou un seul caractère) à trouver.

  • $ offset : paramètre facultatif, spécifiant où démarrer la recherche (par défaut commence à partir du début de la chaîne).

  • $ Longueur : Paramètre facultatif, spécifiant la longueur maximale de la recherche (la chaîne entière se trouve par défaut).

Cette fonction renvoie un entier indiquant le nombre de fois que $ aigule apparaît dans $ haystack . Si $ aigule n'existe pas dans $ haystack , retournez 0.


2. Exemples de base

Supposons que nous ayons une chaîne et que nous voulons compter le nombre d'occurrences d'un certain caractère. Voici un exemple simple:

 <?php
$string = "hello world, hello PHP!";
$char = "o";

// utiliser substr_count Fonction Statistics Caractères "o" Nombre d&#39;occurrences
$count = substr_count($string, $char);

echo "personnage '$char' Nombre d&#39;occurrences是: $count"; // Sortir:personnage 'o' Nombre d&#39;occurrences是: 3
?>

Dans le code ci-dessus, nous avons compté le nombre de fois que le personnage "O" apparaît dans la chaîne "Hello World, Hello Php!" et la sortie du résultat est 3.


3. Statistiques Le nombre d'occurrences de sous-chaînes

En plus de compter le nombre d'occurrences d'un seul caractère, substr_count () peut également être utilisé pour compter le nombre d'occurrences d'une sous-chaîne dans la chaîne cible. Par exemple:

 <?php
$string = "abcabcabcabc";
$substring = "abc";

// utiliser substr_count 函数统计子personnage串 "abc" Nombre d&#39;occurrences
$count = substr_count($string, $substring);

echo "子personnage串 '$substring' Nombre d&#39;occurrences是: $count"; // Sortir:子personnage串 'abc' Nombre d&#39;occurrences是: 4
?>

Dans cet exemple, nous comptons le nombre de fois où la sous-chaîne "ABC" apparaît dans la chaîne "ABCABABABABC" , et la sortie est 4.


4. Utiliser les paramètres de décalage et de longueur

La fonction substr_count () prend également en charge les paramètres de décalage et de longueur , nous permettant de limiter la plage de recherche. Par exemple:

 <?php
$string = "hello world, hello PHP!";
$char = "o";

// De la position d&#39;index 5 Commencez à rechercher,À la plupart des recherches 10 个personnage
$count = substr_count($string, $char, 5, 10);

echo "personnage '$char' De l&#39;index 5 commencer,À la plupart des recherches 10 个personnage,Nombre d&#39;occurrences是: $count"; // Sortir:personnage 'o' De l&#39;index 5 commencer,À la plupart des recherches 10 个personnage,Nombre d&#39;occurrences是: 1
?>

Dans cet exemple, nous commençons par le 5ème caractère de la chaîne, limitant la longueur maximale de la recherche est de 10 caractères, nous ne comptons donc que le nombre d'occurrences du personnage "O" dans le "monde, bonjour php!" partie, et le résultat est 1.


5. Choses à noter

  • La fonction substr_count () est sensible à la casse, donc "o" et "o" sont considérés comme des caractères différents. Si vous avez besoin d'une recherche insensible à la casse, vous pouvez d'abord convertir la chaîne en un cas uniforme, comme l'utilisation de strtolower () ou strtoupper () .

    Par exemple:

     <?php
    $string = "Hello World, hello PHP!";
    $char = "o";
    
    // 将personnage串转换为小写后再查找
    $count = substr_count(strtolower($string), strtolower($char));
    
    echo "personnage '$char' 在不区分大小写的情况下Nombre d&#39;occurrences是: $count"; // Sortir:personnage 'o' 在不区分大小写的情况下Nombre d&#39;occurrences是: 3
    ?>
    
  • Si $ cela est une chaîne vide, substr_count () renvoie 0. En effet, une chaîne vide ne peut pas être comptée comme une sous-chaîne.