PHP에서 문자열 정렬은 특히 URL 매개 변수를 처리 할 때 일반적인 요구 사항입니다. URL에서 쿼리 매개 변수를 "자연스럽게 정렬하는 방법은 문제가 될 수 있습니다. 소위 "자연 분류"는 인간 분류와 같은 규칙을 말합니다. 예를 들어, 숫자 2는 숫자 10보다 앞서고 전통적인 사전 분류에서 10은 두 가지보다 앞서 있습니다. PHP의 strnatcasecmp 함수는 이러한 자연 분류를 달성하고 사례 불신 비교를 지원하는 데 도움이 될 수 있습니다.
이 기사에서는 PHP에서 strnatcasecmp 함수를 사용하여 URL 매개 변수를 자연스럽게 정렬하고 코드 예제를 제공하는 방법을 설명합니다.
strnatcasecmp 함수는 두 줄을 비교하는 데 사용되며 일반적인 사전 정렬보다는 자연스러운 분류 알고리즘을 사용합니다. 이 기능은 숫자와 문자의 자연 순서, 특히 숫자를 포함하는 문자열을 정렬 할 때 케이스와 정렬을 무시합니다.
기본 구문은 다음과 같습니다.
int strnatcasecmp(string $str1, string $str2)
str1 : 첫 번째 문자열.
str2 : 두 번째 문자열.
반품 값 :
str1 이 str2 보다 작 으면 음성 정수가 반환됩니다.
str1이 str2 와 같으면 반환 0;
STR1 이 STR2 보다 큰 경우 양의 정수가 반환됩니다.
URL 쿼리 매개 변수를 처리 할 때는 일반적으로 URL에서 매개 변수를 추출하여 정렬합니다. 다음과 같이 일부 쿼리 매개 변수가 포함 된 URL이 있다고 가정합니다.
$url = "https://gitbox.net/search?query=apple&sort=10&filter=2";
parse_url 및 parse_str 함수를 사용하여 URL에서 쿼리 매개 변수를 추출한 다음 Strnatcasecmp를 사용하여 이러한 매개 변수를 자연스럽게 정렬 할 수 있습니다.
URL에서 매개 변수를 추출하고 파라미터 이름의 자연 순서로 정렬하려고한다고 가정합니다. 다음 단계를 따를 수 있습니다.
<?php
// 이것이 당신의 것이라고 가정합니다 URL
$url = "https://gitbox.net/search?query=apple&sort=10&filter=2";
// 발췌 URL 쿼리 부분
$parsed_url = parse_url($url);
parse_str($parsed_url['query'], $query_params);
// 사용 usort 그리고 strnatcasecmp 자연스럽게 쿼리 매개 변수를 정렬합니다
uksort($query_params, function($a, $b) {
return strnatcasecmp($a, $b);
});
// 정렬 된 쿼리 매개 변수 인쇄
echo "정렬 된 쿼리 매개 변수:\n";
print_r($query_params);
// 정렬 된 refactoring URL
$sorted_query = http_build_query($query_params);
$sorted_url = $parsed_url['scheme'] . '://' . $parsed_url['host'] . $parsed_url['path'] . '?' . $sorted_query;
echo "정렬 URL: $sorted_url\n";
?>
구문 분석 URL : Parse_url 함수를 사용하여 URL에서 쿼리 부분을 추출한 다음 Parse_str 함수를 사용하여 쿼리 문자열을 연관 배열로 변환합니다.
자연 분류 : Uksort 기능을 사용하여 연관 배열의 키 (예 : 매개 변수 이름)를 정렬하십시오. 정렬 규칙은 콜백 함수 strnatcasecmp 를 통해 구현되므로 자연 순서로 정렬 할 수 있습니다.
정렬 된 URL을 빌드 : http_build_query 함수를 통해 정렬 된 쿼리 문자열을 재구성하고 다른 URL 부품과 병합하여 정렬 된 URL을 생성하십시오.
원래 URL이 다음과 같이 가정합니다.
https://gitbox.net/search?query=apple&sort=10&filter=2
정렬 후 URL은 다음과 같습니다.
https://gitbox.net/search?filter=2&query=apple&sort=10
분류 된 쿼리 매개 변수는 알파벳순으로 배열되어 인간의 자연 분류 규칙을 준수합니다.
PHP의 strnatcasecmp 함수를 사용하면 자연스럽게 URL 매개 변수를 쉽게 구현할 수 있습니다. 숫자 나 문자이든 Strnatcasecmp는 분류 결과가 인간 직관적 이해와 일치하도록합니다. 이 방법은 다수를 다룰 때 많은 URL 쿼리 매개 변수를 정렬 해야하는 경우 매우 유용합니다.
parse_url , parse_str , uksort 및 http_build_query를 결합하면 URL 매개 변수를 유연하게 정렬하고 새 URL을 생성 할 수 있습니다.
이 기사가 도움이되기를 바랍니다. 행복한 프로그래밍을 기원합니다!