현재 위치: > 최신 기사 목록> count_chars 및 array_map으로 문자 주파수를 신속하게 처리하는 방법은 무엇입니까?

count_chars 및 array_map으로 문자 주파수를 신속하게 처리하는 방법은 무엇입니까?

gitbox 2025-09-17

1. count_chars 함수의 개요

count_chars는 문자열에서 각 문자의 주파수를 계산하고 연관 배열을 반환하는 내장 기능입니다. 이 배열의 키는 문자의 ASCII 코드이며 값은 문자열에 문자가 나타나는 횟수입니다.

예:

 <span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"hello world!"</span></span><span>;
</span><span><span class="hljs-variable">$char_count</span></span><span> = </span><span><span class="hljs-title function_ invoke__">count_chars</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);  </span><span><span class="hljs-comment">// 1 리턴 주파수를 나타내는 매개 변수 배열</span></span><span>

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$char_count</span></span><span>);
</span></span>

출력 결과는 다음과 같습니다.

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">104</span></span><span>] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [</span><span><span class="hljs-number">101</span></span><span>] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [</span><span><span class="hljs-number">108</span></span><span>] =&gt; </span><span><span class="hljs-number">2</span></span><span>
    [</span><span><span class="hljs-number">111</span></span><span>] =&gt; </span><span><span class="hljs-number">2</span></span><span>
    [</span><span><span class="hljs-number">119</span></span><span>] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [</span><span><span class="hljs-number">114</span></span><span>] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [</span><span><span class="hljs-number">100</span></span><span>] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [</span><span><span class="hljs-number">33</span></span><span>] =&gt; </span><span><span class="hljs-number">1</span></span><span>
)
</span></span>

위의 예에서 Count_chars는 문자열에서 각 문자의 주파수를 리턴합니다 (ASCII 코드 별). 예를 들어, 문자 h (ASCII 코드 104)가 한 번 나타나고 문자 L (ASCII 코드 108)이 두 번 나타납니다.

2. 문자 주파수를 읽을 수있는 양식으로 변환합니다

일반적으로 ASCII 코드 대신 문자의 실제 값을보고 싶습니다. 이를 위해 반환 된 배열을 Array_Map 함수와 함께 처리하고 ASCII 코드를 문자로 변환 할 수 있습니다.

Array_Map 함수는 콜백 함수를 수용하고 배열의 각 요소에 적용합니다. 시나리오에서는이를 사용하여 ASCII 코드를 해당 문자로 변환 할 수 있습니다.

예:

 <span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"hello world!"</span></span><span>;
</span><span><span class="hljs-variable">$char_count</span></span><span> = </span><span><span class="hljs-title function_ invoke__">count_chars</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);

</span><span><span class="hljs-comment">// 할 것이다 ASCII 코드를 문자로 변환합니다</span></span><span>
</span><span><span class="hljs-variable">$char_count</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$key</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>);  </span><span><span class="hljs-comment">// chr() 函数할 것이다 ASCII 코드를 문자로 변환합니다</span></span><span>
}, </span><span><span class="hljs-title function_ invoke__">array_keys</span></span><span>(</span><span><span class="hljs-variable">$char_count</span></span><span>));

</span><span><span class="hljs-comment">// 할 것이다频率与字符关联</span></span><span>
</span><span><span class="hljs-variable">$char_count</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_combine</span></span><span>(</span><span><span class="hljs-variable">$char_count</span></span><span>, </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-variable">$char_count</span></span><span>));

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$char_count</span></span><span>);
</span></span>

출력 결과는 다음과 같습니다.

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [h] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [e] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [l] =&gt; </span><span><span class="hljs-number">2</span></span><span>
    [o] =&gt; </span><span><span class="hljs-number">2</span></span><span>
    [w] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [r] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [d] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [!] =&gt; </span><span><span class="hljs-number">1</span></span><span>
)
</span></span>

현재 캐릭터와 그 주파수를 볼 수 있으며 출력의 각 문자의 빈도도 명확하게 보입니다.

3. COUNT_CHARSARRAY_MAP 의 결합 된 사용 문자 주파수를 계산합니다.

위의 두 단계를 통해 문자 주파수를 빠르게 계산하여 사람이 읽을 수있는 형식으로 변환 할 수 있습니다. 이 두 단계는 반복 된 작업을 단순화하기 위해 함수로 캡슐화 될 수 있습니다.

Function example:

 <span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">getCharFrequency</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$string</span></span></span><span>) {
    </span><span><span class="hljs-variable">$char_count</span></span><span> = </span><span><span class="hljs-title function_ invoke__">count_chars</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);
    </span><span><span class="hljs-variable">$char_count</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$key</span></span><span>) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>);  
    }, </span><span><span class="hljs-title function_ invoke__">array_keys</span></span><span>(</span><span><span class="hljs-variable">$char_count</span></span><span>));
    
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">array_combine</span></span><span>(</span><span><span class="hljs-variable">$char_count</span></span><span>, </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-variable">$char_count</span></span><span>));
}

</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"hello world!"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getCharFrequency</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span></span>

출력 결과는 다음과 같습니다.

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [h] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [e] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [l] =&gt; </span><span><span class="hljs-number">2</span></span><span>
    [o] =&gt; </span><span><span class="hljs-number">2</span></span><span>
    [w] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [r] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [d] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [!] =&gt; </span><span><span class="hljs-number">1</span></span><span>
)
</span></span>

getCharfrequency 함수를 통해 모든 문자열의 문자 주파수 통계를 빠르게 얻을 수 있습니다. 문자열의 길이에 관계없이 count_charsarray_map은 효율적인 솔루션을 제공합니다.

4. 요약

PHP에서는 count_charsarray_map 함수를 사용하여 문자 주파수를 빠르고 효율적으로 처리 할 수 ​​있습니다. Count_chars는 원시 주파수 통계를 제공하는 반면 Array_Map은 결과를보다 직관적 인 형식으로 변환하는 데 도움이됩니다. 이 두 기능을 결합하면 문자열 분석 및 텍스트 처리와 같은 시나리오에서 많은 시간과 노력을 절약 할 수 있습니다.