如何在 PHP 中查找给定数字的字符串出现的字母
How to find the occurrences letters of a string for given number in PHP
我有字符串
$str = 'street';
我想写一个函数
output($str, $n)
这里的 $n
是给定字符串中出现次数的计数。
我不想使用任何 PHP 内置函数,例如先将其转换为数组或 substr_count
或任何其他函数,如果可能的话,我只想使用纯 for 循环来执行此操作
考虑 $n 为 2,预期输出为:-
t -> 2
e -> 2
$input = 'street';
$n = 2;
function outputs($input, $n)
{
$input = str_replace(' ', '', $input);
$characters = str_split($input);
$outputs = [];
foreach ($characters as $char)
{
if(!isset($outputs[$char])){
$outputs[$char] = 1;
} else {
$outputs[$char] += 1;
}
}
foreach ($outputs as $char => $number)
{
if ($number == $n) {
echo $char . ' -> ' . $number;
echo "\n";
}
}
}
outputs($input, $n);
所以在这里,我已经尝试了上面的代码并且它工作得很好,但是在这里我使用了 str_split 函数。我想避免使用它,并且只有在可能的情况下才需要它通过循环来完成。
我不擅长格式化问题,所以请原谅我。
您可以改用 for 循环:
<?php
$input = 'street';
$n = 2;
function outputs($input, $n)
{
$input = str_replace(' ', '', $input);
$outputs = [];
for($i = 0; $i < strlen($input); $i++)
{
if(!isset($outputs[$input[$i]])){
$outputs[$input[$i]] = 1;
} else {
$outputs[$input[$i]] += 1;
}
}
foreach ($outputs as $char => $number)
{
if ($number == $n) {
echo $char . ' -> ' . $number;
echo "\n";
}
}
}
outputs($input, $n);
如果你不能使用 strlen
你可以使用 while
循环 isset
:
$i = 0;
while(isset($input[$i])) {
if(!isset($outputs[$input[$i]])){
$outputs[$input[$i]] = 1;
} else {
$outputs[$input[$i]] += 1;
}
$i++;
}
删除 str_split
和 str_replace()
函数可以通过使用字符串可以作为数组访问的事实来完成,因此遍历字符串并通过它的字符串中的位置...
function outputs($input, $n)
{
$outputs = [];
for ( $i = 0; $i < strlen($input); $i++ )
{
$char = $input[$i];
if ( $char != ' ' ) {
if(!isset($outputs[$char])){
$outputs[$char] = 1;
} else {
$outputs[$char] += 1;
}
}
}
foreach ($outputs as $char => $number)
{
if ($number == $n) {
echo $char . ' -> ' . $number;
echo "\n";
}
}
}
要删除 strlen()
,只需检查字符串的每个元素是否已设置...
function outputs($input, $n)
{
$outputs = [];
$i = 0;
while ( isset($input[$i]))
{
$char = $input[$i];
if ( $char != ' ' ) {
if(!isset($outputs[$char])){
$outputs[$char] = 1;
} else {
$outputs[$char] += 1;
}
}
$i++;
}
foreach ($outputs as $char => $number)
{
if ($number == $n) {
echo $char . ' -> ' . $number;
echo "\n";
}
}
}
我有字符串
$str = 'street';
我想写一个函数
output($str, $n)
这里的 $n
是给定字符串中出现次数的计数。
我不想使用任何 PHP 内置函数,例如先将其转换为数组或 substr_count
或任何其他函数,如果可能的话,我只想使用纯 for 循环来执行此操作
考虑 $n 为 2,预期输出为:-
t -> 2
e -> 2
$input = 'street';
$n = 2;
function outputs($input, $n)
{
$input = str_replace(' ', '', $input);
$characters = str_split($input);
$outputs = [];
foreach ($characters as $char)
{
if(!isset($outputs[$char])){
$outputs[$char] = 1;
} else {
$outputs[$char] += 1;
}
}
foreach ($outputs as $char => $number)
{
if ($number == $n) {
echo $char . ' -> ' . $number;
echo "\n";
}
}
}
outputs($input, $n);
所以在这里,我已经尝试了上面的代码并且它工作得很好,但是在这里我使用了 str_split 函数。我想避免使用它,并且只有在可能的情况下才需要它通过循环来完成。
我不擅长格式化问题,所以请原谅我。
您可以改用 for 循环:
<?php
$input = 'street';
$n = 2;
function outputs($input, $n)
{
$input = str_replace(' ', '', $input);
$outputs = [];
for($i = 0; $i < strlen($input); $i++)
{
if(!isset($outputs[$input[$i]])){
$outputs[$input[$i]] = 1;
} else {
$outputs[$input[$i]] += 1;
}
}
foreach ($outputs as $char => $number)
{
if ($number == $n) {
echo $char . ' -> ' . $number;
echo "\n";
}
}
}
outputs($input, $n);
如果你不能使用 strlen
你可以使用 while
循环 isset
:
$i = 0;
while(isset($input[$i])) {
if(!isset($outputs[$input[$i]])){
$outputs[$input[$i]] = 1;
} else {
$outputs[$input[$i]] += 1;
}
$i++;
}
删除 str_split
和 str_replace()
函数可以通过使用字符串可以作为数组访问的事实来完成,因此遍历字符串并通过它的字符串中的位置...
function outputs($input, $n)
{
$outputs = [];
for ( $i = 0; $i < strlen($input); $i++ )
{
$char = $input[$i];
if ( $char != ' ' ) {
if(!isset($outputs[$char])){
$outputs[$char] = 1;
} else {
$outputs[$char] += 1;
}
}
}
foreach ($outputs as $char => $number)
{
if ($number == $n) {
echo $char . ' -> ' . $number;
echo "\n";
}
}
}
要删除 strlen()
,只需检查字符串的每个元素是否已设置...
function outputs($input, $n)
{
$outputs = [];
$i = 0;
while ( isset($input[$i]))
{
$char = $input[$i];
if ( $char != ' ' ) {
if(!isset($outputs[$char])){
$outputs[$char] = 1;
} else {
$outputs[$char] += 1;
}
}
$i++;
}
foreach ($outputs as $char => $number)
{
if ($number == $n) {
echo $char . ' -> ' . $number;
echo "\n";
}
}
}