Bir PHP dizesinde belirli bir karakterin tüm tekrarlarını saymak için en etkili yolu nedir?

5 Cevap php

Bir PHP dizesinde belirli bir karakterin tüm tekrarlarını saymak için en etkili yolu nedir?

5 Cevap

Bu kullanabilirsiniz:

echo substr_count("abca", "a"); // will echo 2

Emin değil aradığınız bir yanıt ne tür, ama burada bunu yapabilecek bir fonksiyon:

function findChar($c, $str) {
    indexes = array();
    for($i=0; $i<strlen($str); $i++) {
        if ($str{$i}==$c) $indexes[] = $i;
    }
    return $indexes;
}

Eğer aradığınız karakteri ve bakmak istediğiniz dizeyi Pass:

$mystring = "She shells out C# code on the sea shore";
$mychar = "s";
$myindexes = $findChar($mychar, $mystring);
print_r($myindexes);

Size gibi bir şey vermelidir

Array (
    [0] => 0
    [1] => 4
    [2] => 9
    [3] => 31
    [4] => 35
)

falan ...

Eğer tekrar tekrar aynı dizeyi kontrol için gidiyoruz eğer, bazı trayın tür veya başka bunun için bile doç dizi, öyle yapmak için basit bir yol var akıllı olurdu ...

for($i = 0; $i < strlen($s); $i++)
  if($s[i] == $c)
    echo "{$s[i]} at position $i";

Böyle bir şey de bunun için çalışır:

$string = 'blabla';
$searchitem = 'a';
$pieces = explode("$searchitem",$string);
echo count($pieces).' times ' . $searchitem . ' character(s) is/are used ';

Size karakteri yem olamaz preg_match_all?