如何计算不包括';它在PHP中重复出现

如何计算不包括';它在PHP中重复出现,php,Php,如果给定字符串abclkjabc,则只返回3,即lkj 我试过这个 $stringArr=[]; foreach(str_分割($string)为$pwd){ 如果(!in_数组($pwd,$stringArr)){ $stringArr[]=$pwd; } } $uniqChar=计数($stringArr); 请尝试以下方法: function getNonRepeatingCharacters($str) { $counter = []; $spllitted = str_

如果给定字符串abclkjabc,则只返回3,即lkj 我试过这个

$stringArr=[];
foreach(str_分割($string)为$pwd){
如果(!in_数组($pwd,$stringArr)){
$stringArr[]=$pwd;
}
}
$uniqChar=计数($stringArr);

请尝试以下方法:

function getNonRepeatingCharacters($str) {
    $counter = [];
    $spllitted = str_split($str);
    foreach($spllitted as $s) {
        if(!isset($counter[$s])) $counter[$s] = 0;
        $counter[$s]++;
    }
    $non_repeating = array_keys(array_filter($counter, function($c) {
        return $c == 1;
    }));

    return $non_repeating;
}

$string = "abclkjabc";
$handle = getNonRepeatingCharacters($string);
试试这个:

function getNonRepeatingChars($str) {
    $uniqueLetters = '';
    $multipleLetters = '';
    $arrayStr = str_split($str);

    foreach ($arrayStr as $index => $letter) {
        if (strpos($multipleLetters, $value) !== false || strpos($str, $value, $index + 1) !== false) {
            $multipleLetters .= $value;
            continue;
        }

        $uniqueLetters .= $value;
    }

    return $uniqueLetters;
}

函数式编程,无临时变量声明:

  • 创建一个字符数组
  • 计算每个字符的出现次数
  • 只保留出现一次的字符(
    array\u filter()
    也可以,但更详细)
  • 重新加入符合条件的字符
  • 代码:()()

    或使用带循环的半函数:()()

    输出:

    lkj
    

    我猜你认为重复字符串可以有一个任意长度?@ RSuthina是我的答案不正确?或者这仅仅是我最近的一个“粉丝”的持续攻击,Stack Overflow还没有成功禁止其进入网站?为了提高问题的清晰度,你真的需要知道包含唯一字符的字符串吗?还是只知道计数?我实际上需要知道这两者,包含唯一值和计数的字符串。
    echo implode(
             array_keys(
                 array_intersect(
                     array_count_values(
                         str_split('abclkjabc'),
                     ),
                     [1]
                 )
             )
         );
    
    $unique = '';
    foreach (array_count_values(str_split('abclkjabc')) as $char => $count) {
        if ($count === 1) {
            $unique .= $char;
        }
    }
    echo $unique;
    
    lkj