현재 위치: > 최신 기사 목록> 사용자 경험을 향상시키기 위해 다국어 웹 사이트에서 자연스러운 정렬에 strnatcmp를 사용하는 방법은 무엇입니까?

사용자 경험을 향상시키기 위해 다국어 웹 사이트에서 자연스러운 정렬에 strnatcmp를 사용하는 방법은 무엇입니까?

gitbox 2025-09-04

사용자 경험을 향상시키기 위해 다국어 웹 사이트에서 자연스러운 정렬에 strnatcmp를 사용하는 방법은 무엇입니까?

다국어 웹 사이트를 구축 할 때는 사용자 경험이 중요합니다. 특히 목록이나 디렉토리를 표시 할 때 웹 사이트를보다 친절하고 직관적으로 만들기 위해 정렬 방법은 사용자의 탐색 효율성과 전반적인 경험에 직접적인 영향을 미칩니다. 전통적인 사전 순서는 특히 혼합 숫자와 문자의 문자열을 포함 할 때 일부 내용에 직관적이지 않을 수 있습니다. 이를 위해 "천연 분류"에 strnatcmp 함수를 사용하는 것이 이상적인 솔루션이됩니다.

자연 분류 란 무엇입니까?

이름에서 알 수 있듯이 자연 분류는 인간 독서 습관에 따라 줄을 분류하는 것입니다. 예를 들어, "Apple2"및 "Apple10"문자열의 경우 전통적인 사전 분류는 문자 문자로 비교되므로 "Apple10"보다 우선합니다. 그러나 인간은 보통 "Apple2"가 "Apple10"보다 앞서 있어야한다고 생각합니다. 자연 분류는 숫자의 크기와 위치를 고려하여 분류가 인간의 직관에 더 잘 맞습니다.

strnatcmp 함수 소개

strnatcmp 는 자연 분류를 구현할 수있는 PHP의 문자열 비교 함수입니다. 이 기능은 STRCMP 와 유사하지만 후자와는 달리 자연 분류 규칙을 준수하기 위해 문자열을 비교할 때 숫자 부품을 자동으로 처리합니다. 구체적으로, strnatcmp가 두 줄을 비교할 때, 문자 별 비교보다는 숫자를 전체적으로 취급합니다.

strnatcmp를 사용하여 자연 분류를 구현하는 방법은 무엇입니까?

PHP에서 Strnatcmp 의 사용은 매우 간단합니다. 구문은 다음과 같습니다.

 <span><span><span class="hljs-title function_ invoke__">strnatcmp</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$string1</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$string2</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>
</span></span>
  • $ String1 : 첫 번째 문자열

  • $ string2 : 두 번째 문자열

반품 값 :

  • $ String1이 $ String2 보다 앞서있는 경우 0보다 작습니다

  • $ string1이 $ String2 이후에 순위가 0 인 경우 0보다 큽니다

  • 두 줄이 같으면 0과 동일합니다

예 : 다국어 웹 사이트에서 strnatcmp를 사용하여 컨텐츠를 정렬하는 방법은 무엇입니까?

다른 언어로 된 기사 제목이있는 다국어 웹 사이트가 있다고 가정합니다. 이 제목 목록을 자연 순서로 표시하고 싶습니다. strnatcmp 이전에 PHP 기본 사전 분류는 숫자와 문자의 혼합 배열을 유발할 수 있으며, 이는 충분히 직관적이지 않습니다. strnatcmp를 사용하면 수치 부분이 인간의 이해에 의해 분류되도록 할 수 있습니다.

코드 예제

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 이것이 우리 웹 사이트의 제목 배열이라고 가정하십시오,다른 숫자를 포함합니다</span></span><span>
</span><span><span class="hljs-variable">$titles</span></span><span> = [
    </span><span><span class="hljs-string">"Article 10: PHP Introduction"</span></span><span>,
    </span><span><span class="hljs-string">"Article 2: HTML Basics"</span></span><span>,
    </span><span><span class="hljs-string">"Article 1: CSS Fundamentals"</span></span><span>,
    </span><span><span class="hljs-string">"Article 11: JavaScript Essentials"</span></span><span>,
    </span><span><span class="hljs-string">"Article 3: Python for Beginners"</span></span><span>
];

</span><span><span class="hljs-comment">// 사용 uasort 기능 조합 strnatcmp 자연스럽게 제목을 주문하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">uasort</span></span><span>(</span><span><span class="hljs-variable">$titles</span></span><span>, </span><span><span class="hljs-string">'strnatcmp'</span></span><span>);

</span><span><span class="hljs-comment">// 출력 정렬 결과</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$titles</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$title</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$title</span></span><span> . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

코드를 설명하십시오

  1. 각 타이틀에 숫자가 포함 된 타이틀 배열 $ 제목을 만듭니다.

  2. UASORT 기능을 사용하여 배열을 정렬하십시오. UASORT는 배열의 키를 변경하지 않고 지정된 비교 함수 ( StrNATCMP )에 따라 정렬합니다.

  3. 마지막으로 Foreach 루프를 사용하여 정렬 된 결과를 출력하십시오.

정렬 된 출력은 예를 들어 다음과 같습니다.

 <span><span><span class="hljs-selector-tag">Article</span></span><span> </span><span><span class="hljs-number">1</span></span><span>: </span><span><span class="hljs-selector-tag">CSS</span></span><span> </span><span><span class="hljs-selector-tag">Fundamentals</span></span><span>
</span><span><span class="hljs-selector-tag">Article</span></span><span> </span><span><span class="hljs-number">2</span></span><span>: </span><span><span class="hljs-selector-tag">HTML</span></span><span> </span><span><span class="hljs-selector-tag">Basics</span></span><span>
</span><span><span class="hljs-selector-tag">Article</span></span><span> </span><span><span class="hljs-number">3</span></span><span>: </span><span><span class="hljs-selector-tag">Python</span></span><span> </span><span><span class="hljs-selector-tag">for</span></span><span> </span><span><span class="hljs-selector-tag">Beginners</span></span><span>
</span><span><span class="hljs-selector-tag">Article</span></span><span> </span><span><span class="hljs-number">10</span></span><span>: </span><span><span class="hljs-selector-tag">PHP</span></span><span> </span><span><span class="hljs-selector-tag">Introduction</span></span><span>
</span><span><span class="hljs-selector-tag">Article</span></span><span> </span><span><span class="hljs-number">11</span></span><span>: </span><span><span class="hljs-selector-tag">JavaScript</span></span><span> </span><span><span class="hljs-selector-tag">Essentials</span></span><span>
</span></span>

다국어 환경에서의 응용

다국어 웹 사이트에서 제목에는 어휘와 다른 언어로 숫자가 포함될 수 있습니다. strnatcmp를 사용하면 문자 인코딩 또는 언어 차이로 인해 문제를 분류하지 않고 모든 언어의 컨텐츠를 자연 순서로 정렬 할 수 있습니다. 예를 들어, strnatcmp는 사용자가 기대하는 방식으로 정렬 할 수 있습니다.

예 : 다른 언어로 혼합 분류

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 이것이 다국어 웹 사이트의 제목 배열이라고 가정합니다.</span></span><span>
</span><span><span class="hljs-variable">$titles</span></span><span> = [
    </span><span><span class="hljs-string">"기사 2: PHP소개"</span></span><span>,  </span><span><span class="hljs-comment">// 중국인</span></span><span>
    </span><span><span class="hljs-string">"Article 10: Introduction to PHP"</span></span><span>,  </span><span><span class="hljs-comment">// 영어</span></span><span>
    </span><span><span class="hljs-string">"Article 1: HTML Basics"</span></span><span>,  </span><span><span class="hljs-comment">// 영어</span></span><span>
    </span><span><span class="hljs-string">"Article 3: Python for Beginners"</span></span><span>,  </span><span><span class="hljs-comment">// 영어</span></span><span>
    </span><span><span class="hljs-string">"기사 1: CSS베이스"</span></span><span>  </span><span><span class="hljs-comment">// 중국인</span></span><span>
];

</span><span><span class="hljs-comment">// 사용 uasort 기능 조합 strnatcmp 자연스럽게 제목을 주문하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">uasort</span></span><span>(</span><span><span class="hljs-variable">$titles</span></span><span>, </span><span><span class="hljs-string">'strnatcmp'</span></span><span>);

</span><span><span class="hljs-comment">// 출력 정렬 결과</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$titles</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$title</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$title</span></span><span> . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

결과:

 <span><span><span class="hljs-attr">Article 1:</span></span><span> </span><span><span class="hljs-string">HTML</span></span><span> </span><span><span class="hljs-string">Basics</span></span><span>
</span><span><span class="hljs-attr">Article 3:</span></span><span> </span><span><span class="hljs-string">Python</span></span><span> </span><span><span class="hljs-string">for</span></span><span> </span><span><span class="hljs-string">Beginners</span></span><span>
</span><span><span class="hljs-attr">Article 10:</span></span><span> </span><span><span class="hljs-string">Introduction</span></span><span> </span><span><span class="hljs-string">to</span></span><span> </span><span><span class="hljs-string">PHP</span></span><span>
</span><span><span class="hljs-string">기사</span></span><span> </span><span><span class="hljs-attr">1:</span></span><span> </span><span><span class="hljs-string">CSS베이스</span></span><span>
</span><span><span class="hljs-string">기사</span></span><span> </span><span><span class="hljs-attr">2:</span></span><span> </span><span><span class="hljs-string">PHP소개</span></span><span>
</span></span>

Strnatcmp를 사용하여 사용자 경험을 향상시키는 이유는 무엇입니까?

  1. 직관적 인 정렬 결과 : 사용자는 종종 "Apple2"앞에서 "Apple10"순위를보고 싶지 않습니다. stranatcmp는 이 상황을 피하고 수치 부품의 자연스러운 분류를 보장 할 수 있습니다.

  2. 웹 사이트 친선성 향상 : 다국어 웹 사이트, 특히 혼합 번호와 텍스트가 포함 된 콘텐츠의 경우 Strnatcmp는 주문이 중국어, 영어 또는 기타 언어에 관계없이 사용자의 읽기 습관과 일치하도록 할 수 있습니다.

  3. 개발 프로세스 단순화 : 개발 프로세스 중에 StrNATCMP를 사용하면 복잡한 분류 알고리즘을 수동으로 쓰지 않고 시간을 절약하고 개발 효율성을 향상시킬 수 있습니다.

요약

StrNATCMP 는 PHP 개발자가 다국어 웹 사이트에서 자연스러운 정렬을 달성 할 수 있도록 매우 강력한 도구입니다. 이 기능을 통해 개발자는 목록, 디렉토리 또는 다국어 제목에 관계없이 사용자의 직관적 인 감정에 따라 컨텐츠를 정렬 할 수 있으므로 사용자의 탐색 경험을 크게 향상시킬 수 있습니다.