현재 위치: > 최신 기사 목록> PHP에서 strnatcmp와 natsort 함수의 관계와 차이점은 무엇입니까?

PHP에서 strnatcmp와 natsort 함수의 관계와 차이점은 무엇입니까?

gitbox 2025-07-26

1. strnatcmp 함수 소개

strnatcmp 는 PHP의 문자열 비교 함수로서 두 줄을 자연 순서로 비교합니다. 자연 차수 비교의 원리는 다음과 같습니다. 문자열을 비교할 때 숫자 부품은 문자의 문자 그대로의 순서보다는 숫자의 크기로 비교됩니다.

문법:

 <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">$str1</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str2</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>
</span></span>
  • $ str1$ str2 는 비교해야 할 두 개의 문자열입니다.

  • 반환 값 : $ str1이 $ str2 미만인 경우 음수를 반환하십시오. $ str1$ str2 와 같으면 반환 0; $ str1$ str2 보다 큰 경우 양수를 반환하십시오.

예:

 <span><span><span class="hljs-variable">$str1</span></span><span> = </span><span><span class="hljs-string">"a10"</span></span><span>;
</span><span><span class="hljs-variable">$str2</span></span><span> = </span><span><span class="hljs-string">"a2"</span></span><span>;

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strnatcmp</span></span><span>(</span><span><span class="hljs-variable">$str1</span></span><span>, </span><span><span class="hljs-variable">$str2</span></span><span>);  </span><span><span class="hljs-comment">// 산출 1,왜냐하면 "a10" 자연별로 정렬하십시오 "a2" ~ 후에</span></span><span>
</span></span>

위에서 볼 수 있듯이 Strnatcmp는 문자열의 숫자 부분을 하나씩 하나씩 비교하는 대신 숫자로 숫자로 비교합니다.


2. Natsort 기능 소개

Natsort는 자연 순서로 배열을 정렬하는 데 PHP에서 사용되는 기능입니다. Strnatcmp 와 달리 Natsort는 개별 문자열을 비교하기보다는 배열을 직접 정렬하는 분류 기능입니다.

문법:

 <span><span><span class="hljs-title function_ invoke__">natsort</span></span><span>(</span><span><span class="hljs-keyword">array</span></span><span> &amp;</span><span><span class="hljs-variable">$array</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
  • $ 배열은 정렬 할 배열입니다.

  • 반환 값 : 정렬이 성공할 때 true를 반환하고 실패하면 거짓입니다 .

예:

 <span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-string">"a10"</span></span><span>, </span><span><span class="hljs-string">"a2"</span></span><span>, </span><span><span class="hljs-string">"a1"</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">natsort</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);

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

산출:

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">2</span></span><span>] =&gt; a1
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; a2
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; a10
)
</span></span>

보시다시피, Natsort는 배열 요소를 자연 순서로 정렬합니다. 그것은 strnatcmp 와 유사하게 작동하지만 응용 프로그램의 범위는 단일 문자열이 아닌 배열입니다.


3. 관계와 차이점

관계:

  • 자연 분류 : StrnatcmpNatsort는 모두 자연 분류 규칙을 따릅니다. 특히 문자열에 숫자가 포함되어 있습니다.

  • 숫자와 문자 비교 방법 : 문자별로 문자를 비교하는 대신 문자열의 숫자 부분을 숫자로 비교합니다.

차이 :

  • 응용 프로그램 범위 :

    • strnatcmp는 두 줄의 자연 순서를 비교하는 데 사용됩니다.

    • Natsort는 자연 순서로 배열을 정렬하는 데 사용됩니다.

  • 반품 값 :

    • strnatcmp는 두 줄 사이의 크기 관계를 나타내는 정수를 반환합니다.

    • Natsort는 배열을 정렬하고 정렬 된 배열을 반환하지 않지만 원래 배열을 직접 수정합니다.

  • 시나리오 사용 :

    • strnatcmp는 두 줄이 자연 순서로 배열되는지 여부를 비교 해야하는 상황에 적합합니다.

    • Natsort는 자연스럽게 여러 줄을 포함하는 배열을 정렬 해야하는 상황에 적합합니다.