Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不使用可用函数的情况下,计算PHP中字符串中出现的字符数_Php_Arrays_String - Fatal编程技术网

在不使用可用函数的情况下,计算PHP中字符串中出现的字符数

在不使用可用函数的情况下,计算PHP中字符串中出现的字符数,php,arrays,string,Php,Arrays,String,对不起,如果这个问题已经存在。 我有个问题,你能帮我吗。 只能使用strlen函数和数组。可以使用PHP(字符不重复)对字符串中出现的字符数进行编程计数吗。类似于在php中创建新的array\u count\u values函数。 例如: 这是我在使用可用函数array\u count\u values时的代码,它可以正常工作 $a = str_split($str, 1); foreach (array_count_values($a) as $key => $value) {

对不起,如果这个问题已经存在。 我有个问题,你能帮我吗。 只能使用
strlen
函数和数组。可以使用PHP(字符不重复)对字符串中出现的字符数进行编程计数吗。类似于在php中创建新的
array\u count\u values
函数。 例如:

这是我在使用可用函数
array\u count\u values
时的代码,它可以正常工作

$a = str_split($str, 1);
foreach (array_count_values($a) as $key => $value) {
    if ($key === ' ') {
        $key = '_';
    }
    echo $key.'appeared '.$value.' times<br>';
}
$a=str\u split($str,1);
foreach(数组计数值($a)为$key=>$value){
如果($key==''){
$key=''";
}
回显$key.'.$value.'times
'; }

感谢阅读。

这是一种方法。我相信还有更简洁的方法

$input = 'lorem lis pum';

for( $i = 0, $ilen = strlen( $input ), $result = array(); $i < $ilen; $i++ ) {
  $chr = $input[ $i ];
  // substituting the space with an underscore is not actually necessary
  if( $chr === ' ' ) {
    $chr = '_';
  }
  $result[ $chr ] = isset( $result[ $chr ] ) ? $result[ $chr ] + 1 : 1;
}

var_dump( $result );
$input='lorem lis pum';
对于($i=0,$ilen=strlen($input),$result=array();$i<$ilen;$i++){
$chr=$input[$i];
//实际上不需要用下划线替换空格
如果($chr==''){
$chr='u';
}
$result[$chr]=isset($result[$chr])?$result[$chr]+1:1;
}
var_dump($结果);

你可以。这是一种方法。我相信还有更简洁的方法

$input = 'lorem lis pum';

for( $i = 0, $ilen = strlen( $input ), $result = array(); $i < $ilen; $i++ ) {
  $chr = $input[ $i ];
  // substituting the space with an underscore is not actually necessary
  if( $chr === ' ' ) {
    $chr = '_';
  }
  $result[ $chr ] = isset( $result[ $chr ] ) ? $result[ $chr ] + 1 : 1;
}

var_dump( $result );
$input='lorem lis pum';
对于($i=0,$ilen=strlen($input),$result=array();$i<$ilen;$i++){
$chr=$input[$i];
//实际上不需要用下划线替换空格
如果($chr==''){
$chr='u';
}
$result[$chr]=isset($result[$chr])?$result[$chr]+1:1;
}
var_dump($结果);

你可以。

你可以试试这个,希望对你有所帮助:)


或简单版本:

<?php
$input = 'lorem lis pum';

function outputs($input)
{
    //suggest remove all spaces first
    $input = str_replace(' ', '', $input);

    $chars = str_split($input);

    foreach (array_count_values($chars) as $key => $value)
    {
        echo $key. ' appeared '.$value.' times<br>';
    }
}

outputs($input);
?>

您可以试试这个,希望对您有所帮助:)


或简单版本:

<?php
$input = 'lorem lis pum';

function outputs($input)
{
    //suggest remove all spaces first
    $input = str_replace(' ', '', $input);

    $chars = str_split($input);

    foreach (array_count_values($chars) as $key => $value)
    {
        echo $key. ' appeared '.$value.' times<br>';
    }
}

outputs($input);
?>

尝试使用该功能

foreach(将字符($str,1)计数为$key=>$value){
echo chr($key)。“出现”。$value。“次
”; }
尝试使用该功能

foreach(将字符($str,1)计数为$key=>$value){
echo chr($key)。“出现”。$value。“次
”; }
我很好奇为什么你需要创建一个已经存在的范例?您是否还想实现另一种方法?为此,你需要为此创建一种新方法?@hassan我想了解更多信息。也许我将来会发明一种新方法我很好奇为什么你需要创造一个已经存在的范例?您是否还想实现另一种方法?为此,你需要为此创建一种新方法?@hassan我想了解更多信息。也许我将来会发明一种新方法谢谢@Timur,但我不想使用可用函数。谢谢@Timur,但我不想使用可用函数。
foreach (count_chars($str, 1) as $key => $value) {
    echo chr($key).' appeared '.$value.' times<br>';
}