2017-11-01 20 views
0

文字列から2つのシンボルを分離しようとしていますが、 は、これらのシンボルの数を数えます。文字列内の特定のシンボルを読み取る方法

私が持っていたのであれば:1110001110000

をそれからそれは6 = 1と7 = 0の

があることを見つけなければならないので、これは私が試したものです、私は必要な基本的に何 読むことですコード内の文字列インデックスはstring[$i]となり、IF1または0となります。私は毎回のTHERのためONEをエコーし​​ようとしている。ここイムをfor -loop

for ($i=0; $i < $getInput[$i] ; $i++) { 
    if ($getInput[$i] == 1) { 
     echo "ONE"; 
    } elseif ($getInput[$i] == 0) { 
     echo "ZERO"; 
    } 
} 

を使用してみました

は毎回のための1とZEROがゼロをtheresのです。

$counter = 0; 
foreach ($getInput as $key) { 
    echo $key; 
} 

ここで私はforeachを利用しようとした、ここで私は本当に一つのインデックスを参照するために宣言していないです、私はforにそれぞれに置くことが、言うまでもなく、それは動作しませんでした試みました。 substr_countを使用して

+3

これは役立つはず - http://php.net/manual/en/function.substr-count.php – Adam

+0

'array_count_values(str_split( '1110001110000')) 'あなたのために仕事をします。 – axiac

答えて

2

、あなたはかなり簡単な方法でこれを行うことができます:

echo substr_count("1110001110000", '1'); //Echos 6 
echo substr_count("1110001110000", '0'); //Echos 7 
+0

確かに私が求めていたのですが、基本的に最初の数個のシンボルを数え、コードを参照して宣言されたものをエコーし​​ています。実際にはこれは次のようになります: '1110001110000' = ABAC;従って本質的に、111 = A、000 = B、0000 = C。文字列が1と0のランダムパターンになることを考慮して、 – Dice

+0

これは、あなたの最後に論理プログラミングを必要とするでしょう、substr_count関数が実行できる範囲外です。あなたがそれが何が含まれているか分からない文字列を受け取っている場合、これは私が感じることは自明ではありません。 – Adam

1

Substr_count。
http://php.net/manual/en/function.substr-count.php

$str = "1110001110000"; 

Echo "there is " .substr_count($str, "0") ." zeros \n"; 
Echo "there is " .substr_count($str, "1") ." ones \n"; 

https://3v4l.org/BQEiR


あなたのコードは、(1 1 1つのゼロ)暗示するように、あなたが出力にそれをしたい場合は、NumberFormatterはを使用することができます。
ここでは、文字列を配列に分割し、それをループして各数値のスペルアウトを出力します。

$str = "1110001110000"; 
$arr = str_split($str); 

$nf = new NumberFormatter("en", NumberFormatter::SPELLOUT); 
Foreach($arr as $numb){ 
    echo $nf->format($numb) . " "; 
} 

出力:

one one one zero zero zero one one one zero zero zero zero 

https://3v4l.org/nHX59

関連する問題