我是PHP开发的新手。我希望能够将一个单词的每个字符数存储在一个数组中。
所以如果单词是“test
”。
我想要像
这样的东西arr[t] = 2
arr[e] = 1
arr[s] = 1
就ASCII而言,我实际上想要这样的东西:
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 ++中,我曾经做过类似的事情并且过去常常工作。我在这里错过了一些东西。请帮忙。
答案 0 :(得分:1)
您需要使用str_split
,array_count_values
和ord
来获取所有需求输出。只需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 )
答案 1 :(得分: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;
?>