PHP에서 rsort () 함수는 일반적으로 배열을 내림차순으로 정렬하는 데 사용되지만 기본적으로 배열 요소의 값별로 정렬됩니다. 배열을 문자열의 길이로 정렬하려면 rsort () 가이 요구 사항을 직접 구현할 수 없습니다. 배열을 문자열 길이별로 정렬하기 위해 usort () 와 사용자 정의 비교 함수를 사용하거나 정렬하고 처리하기 전에 문자열의 길이를 계산할 수 있습니다.
이 기사는 RSORT ()를 사용하여 스트링 길이별로 배열을 정렬하는 방법을 소개하고 코드 예제 및 설명을 제공합니다.
가장 먼저 이해해야 할 것은 문자열의 길이를 기준으로 RSORT ()를 직접 정렬 할 수 없으며 배열 요소의 값에 따라 정렬됩니다. 따라서 문자열 길이별로 정렬을 달성하려면 usort ()를 사용해야합니다.
그러나 usort () 자체는 배열 오름차순 순서를 정렬합니다. 비교 함수를 사용자 정의 할 수 있으며,이 기능은 문자열의 길이에 따라 비교하여 길이별로 정렬을 달성합니다. 또한 rsort () 와 유사한 효과를 달성하기 위해 분류 방법을 내려갈 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 예제 배열</span></span><span>
</span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"kiwi"</span></span><span>, </span><span><span class="hljs-string">"grapes"</span></span><span>, </span><span><span class="hljs-string">"strawberry"</span></span><span>];
</span><span><span class="hljs-comment">// 사용자 정의 비교 기능,문자열 길이별로 정렬하십시오</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">compareByLength</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$a</span></span></span><span>, </span><span><span class="hljs-variable">$b</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$b</span></span><span>) - </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$a</span></span><span>); </span><span><span class="hljs-comment">// 내림차순으로 정렬하십시오</span></span><span>
}
</span><span><span class="hljs-comment">// 사용 usort 和사용자 정의 비교 기능排序</span></span><span>
</span><span><span class="hljs-title function_ invoke__">usort</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, </span><span><span class="hljs-string">'compareByLength'</span></span><span>);
</span><span><span class="hljs-comment">// 출력 정렬 배열</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 class="hljs-meta">?></span></span><span>
</span></span>배열 정의 : 먼저 다른 길이의 문자열이 포함 된 다른 과일 이름을 포함하는 배열 $ 배열을 정의합니다.
사용자 정의 비교 함수 : CompareByLength () 는 커스텀 비교 함수로, 두 문자열의 길이를 비교하는 데 사용됩니다. 여기서 우리는 strlen ($ b) - strlen ($ a)을 사용하여 내림차순 길이의 순서를 달성합니다. strlen () 함수는 문자열의 길이를 반환합니다. $ b 와 $ a는 각각 비교할 두 줄입니다. 반품 값이 양수 인 경우 $ B 의 길이는 $ a 보다 크고 그 반대도 마찬가지입니다.
정렬 배열 : usort () 함수는 배열을 정렬하는 데 사용되며 순서 규칙은 우리가 전달한 비교 함수에 따라 결정됩니다.
출력 정렬 결과 : 마지막으로 print_r ()을 사용하여 정렬 된 배열을 출력하면 결과가 스트링 길이로 길고 짧게 배열됩니다.
위의 코드를 실행하면 출력이 다음과 같습니다.
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => strawberry
[</span><span><span class="hljs-number">1</span></span><span>] => banana
[</span><span><span class="hljs-number">2</span></span><span>] => grapes
[</span><span><span class="hljs-number">3</span></span><span>] => apple
[</span><span><span class="hljs-number">4</span></span><span>] => kiwi
)
</span></span>보시다시피, 긴 문자열 길이가 긴 요소가 그 앞에 있습니다.
RSORT () 자체는 문자열 길이로 직접 정렬 할 수는 없지만 사용자 정의 비교 함수 및 usort ()를 통해이 요구 사항을 달성 할 수 있습니다. 배열을 길이별로 정렬하기 위해 함수의 strlen ()을 비교하여 문자열의 길이를 계산하십시오. 이 방법은 RSORT () 의 하강 순서를 유지할뿐만 아니라 요구에 따라 배열 요소를 유연하게 정렬합니다.
이 방법이 PHP에서 배열을 더 잘 조작하는 데 도움이되기를 바랍니다!