Как сделать так, чтобы программа пропускала пробелы и сравнивала дальше?

<form action="" method="POST">
    введіть слово<input type="text" name="r"> <br> 
    <input type="submit" name="btn" value="OK">
</form>
 
<?php
if (isset($_POST['btn'])) {
    $str=$_POST['r'];
    $chars = '';
    $str = str_split($str);
    for($i=0;$i<count($str);$i++){
        for($j=0;$j<count($str);$j++){
            if($i!=$j){
                if($str[$i]==$str[$j]){
                    $r = stristr($chars, $str[$j]);
                        if(empty($r)==true){
                            $chars .= $str[$j];
                    }
                }
            }
        }
    }
    echo ($chars);
}
?>
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
kspitfire
@kspitfire
Webdev: PHP (Symfony, Laravel), JS (Vue.js), Go.
Как вариант:

// кириллица - это юникод, простой str_split не подойдет
$strArray = preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY);
$chars = [];

// считаете, сколько раз каждый символ повторяется
foreach ($strArray as $item) {
	$chars[$item] = (true === isset($chars[$item])) ? $chars[$item] + 1 : 1; 
}

// выводите только те, которые встречаются > 1 раза
foreach ($chars as $key => $count) {
	if ($count > 1) {
		echo "$key".PHP_EOL;
	}
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы