Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP로 문자열 내 각 문자의 출현 횟수 세는 방법

PHP에서는 기본 문자열 함수 몇 가지를 조합하는 것만으로도 문자열 안에 각 문자가 몇 번 등장하는지 손쉽게 계산할 수 있습니다. 이 글에서는 공백을 제거하고 문자열을 배열로 분할한 뒤, 반복문으로 출현 횟수를 집계하는 방법을 단계별로 살펴봅니다.


예제 코드

<?php
    $str = "welcome to tutorials point";
    $str = str_replace(" ", "", $str);   // 공백 제거
    $arr = str_split($str);              // 한 글자씩 배열로 분할
    
    // 각 문자의 출현 횟수 집계
    foreach ($arr as $val) {
        if (!isset($output[$val])) {
            $output[$val] = 1;
        } else {
            $output[$val] += 1;
        }
    }
    
    // 결과 출력
    foreach ($output as $char => $number) {
        echo $char . " " . $number . "번\n";
    }
?>

코드 설명

1. 공백 제거
str_replace(" ", "", $str)는 문자열에 포함된 모든 공백을 빈 문자열로 치환하여, 집계 대상에서 공백을 제외합니다.

2. 문자열 분할
str_split($str)은 문자열을 한 글자씩 잘라 배열 형태로 반환합니다. 예를 들어 "welcome"["w", "e", "l", "c", "o", "m", "e"]가 됩니다.

3. 출현 횟수 집계
첫 번째 foreach 반복문에서는 문자를 키(key)로 사용하는 연관 배열 $output에 횟수를 누적합니다. isset()으로 해당 문자가 처음 등장했는지 확인하여 초기값 1을 설정하고, 이미 존재하는 문자라면 기존 값에 1을 더합니다.

4. 결과 출력
두 번째 foreach 반복문이 집계된 배열을 순회하면서 각 문자와 그 등장 횟수를 화면에 출력합니다.

실행 결과

w 1번
e 2번
l 2번
c 1번
o 4번
m 1번
t 4번
u 1번
r 1번
i 2번
a 1번
s 1번
p 1번
n 1번

결과를 보면 ot가 각각 4번으로 가장 많이 등장했으며, e, l, i는 2번씩 나타난 것을 확인할 수 있습니다.

더 간단한 방법: count_chars() 활용

PHP에서는 내장 함수 count_chars()를 사용하면 위 과정을 훨씬 간결하게 구현할 수 있습니다.

<?php
    $str = str_replace(" ", "", "welcome to tutorials point");
    
    foreach (count_chars($str, 1) as $ascii => $count) {
        echo chr($ascii) . " " . $count . "번\n";
    }
?>

count_chars($str, 1)은 실제로 사용된 문자만 아스키 코드를 키로 하여 출현 횟수를 배열로 반환하며, chr() 함수로 아스키 코드를 다시 문자로 변환해 출력할 수 있습니다. 두 방식 모두 동일한 결과를 제공하므로, 상황에 맞게 선택해 사용하면 됩니다.