2016-07-03 25 views
0

PHP開発の初心者です。私は配列の単語の文字カウントのそれぞれを格納できるようにしたい。各文字の数をPHPの文字列に格納する

単語が「test」の場合。

私は実際に何かしたいと思うASCIIに言えば

arr[t] = 2 
arr[e] = 1 
arr[s] = 1 

ような何かをしたい:

以下
arr[116] = 2 
arr[101] = 1 
arr[115] = 1 

は、私が試したものです:

<?php 
    $content = file_get_contents($argv[1]); 
    $arr = explode(" ", $content); 
    $countArr = array(); 
    for($x = 0; $x < strlen($arr[0]); $x++) 
    { 
     $countArr[$arr[0][$x]]++; // taking first word and trying to store count of each letter 
    } 
    for($x = 0; $x < 256; $x++) 
    { 
     echo $countArr[$x]; // trying to print the count values 
    } 
    ?> 

それはありません動作するようです。 C++では、私はこのようなことをしていました。私はここで何かを逃している。助けてください。

+1

stingを配列に分割するには、 'array_count_values()'と 'str_split()'を見てください。 (あなたの現在のコードをさらにデバッグしたい場合は、2つのforループ間で 'print_r($ countArr);'を実行してください;エラー報告を有効にしてください) – Rizier123

+0

エラーが「Undefined Offset」になります。 256回。 – Unbreakable

+0

C++について忘れてください。それはそうではありません。 – lulyon

答えて

0

私は答えをコード化することができます: P.S:それは愚かな証拠ではないかもしれません。

<?php 
// Program to find the word in a sentence with maximum specific character count 
// Example: "O Romeo, Romeo, wherefore art thou Romeo?” 
// Solution: wherefore 
// Explanation: Because "e" came three times 
$content = file_get_contents($argv[1]); // Reading content of file 
$max = 0; 
$arr = explode(" ", $content); // entire array of strings with file contents 
for($x =0; $x<count($arr); $x++) // looping through entire array 
{ 
$array[$x] = str_split($arr[$x]); // converting each of the string into array 
} 
for($x = 0; $x < count($arr); $x++) 
{ 
    $count = array_count_values($array[$x]); 
    $curr_max = max($count); 
    if($curr_max > $max) 
    { 
     $max = $curr_max; 
     $word = $arr[$x]; 
    } 
} 
echo $word; 
?> 
1

あなたはすべての欲望の出力を得るためstr_splitarray_count_valuesordを使用する必要があります。単純にarray_count_valuesを使用すると、最初の出力が得られ、配列キーとしてASCII値を使用する場合は、ordを使用します。

$str = "test"; 
$arr = str_split($str); 
$count_val = array_count_values($arr); 

$res_ascii = array(); 
foreach($count_val as $k => $v){ 
    $res_ascii[ord($k)] = $v; 
} 

print_r($count_val); // Array ([t] => 2 [e] => 1 [s] => 1) 
print_r($res_ascii); // Array ([116] => 2 [101] => 1 [115] => 1) 
関連する問題