0

次のような文字列がある場合:

$string = '01122028K,02122028M,03122028K,04122028M,05122028K,06122028P-2,07122028K,08122028P-';

文字列$string内の「K」の数を取得するにはどうすればよいですか。この場合、K は 4 になります。 $string を配列​​に分解した後、ループを介して strpos() ヘルプによって解決できることがわかっています。簡単な方法でそれを行うphp関数はありますか?

ありがとうございました。

4

2 に答える 2

6
echo "There are " . substr_count($string, 'K') . " K's in the string";

カウントしたくない場合は、次のようにK-1なります。

echo "There are " . substr_count($string, 'K')-substr_count($string, 'K-') . " K's in the string";

コメントの新しい問題を解決するには:

$string = '01122028K,02122028M,02122028K-1,02122028K-2,03122028K,04122028M,05122028K-1,04122028M,05122028K,06122028P-2,07122028K,08122028P-';
preg_match_all('/K(?:-\d+)?/', $string, $match);
$counts = array_count_values($match[0]);
print_r($counts);

Array
(
    [K] => 4
    [K-1] => 2
    [K-2] => 1
)
于 2013-04-23T03:15:51.163 に答える