<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 이 파일은 예입니다,에 관한 기사를 보여주세요 PHP 가운데 krsort 기능 사용 기사</span></span><span>
</span><span><span class="hljs-comment">// 신체와 관련이없는 코드 또는 의견은 여기에 기록됩니다.</span></span><span>
</span><span><span class="hljs-comment">// ------------------------------</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
<h1>사용 krsort 기능 및 솔루션시 발생할 수있는 일반적인 오류</h1>
<p>존재하다 PHP 가운데,<code></span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>()정렬 된 $ 값은 정렬 된 배열이 아닌 부울 유형 ( true / false )입니다. 그 이유는 krsort ()가 성공한 부울 가치를 반환하기 때문입니다.
솔루션 : 원래 배열을 사용하기 만하면됩니다.
</span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-number">3</span></span><span> => </span><span><span class="hljs-string">'a'</span></span><span>, </span><span><span class="hljs-number">1</span></span><span> => </span><span><span class="hljs-string">'b'</span></span><span>, </span><span><span class="hljs-number">2</span></span><span> => </span><span><span class="hljs-string">'c'</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
krsort () 의 두 번째 매개 변수는 순서 규칙을 제어 할 수 있습니다. 예를 들어, 기본적으로 일정한 Sort_regular 입니다. 즉, 키 이름은 일반적인 방식으로 비교됩니다. 배열의 키 이름이 문자열이고 숫자를 포함하는 경우 결과가 기대치와 일치하지 않을 수 있습니다.
예:
</span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'10'</span></span><span> => </span><span><span class="hljs-string">'a'</span></span><span>, </span><span><span class="hljs-string">'2'</span></span><span> => </span><span><span class="hljs-string">'b'</span></span><span>, </span><span><span class="hljs-string">'1'</span></span><span> => </span><span><span class="hljs-string">'c'</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
출력은 잘못된 정렬이 없다고 잘못 가정 할 수 있습니다. 비교 규칙이 문자열 형태의 숫자를 문자열로 비교하기 때문입니다.
해결 방법 : SORT_NUMERIC 과 같은 Collation을 명시 적으로 지정합니다.
</span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'10'</span></span><span> => </span><span><span class="hljs-string">'a'</span></span><span>, </span><span><span class="hljs-string">'2'</span></span><span> => </span><span><span class="hljs-string">'b'</span></span><span>, </span><span><span class="hljs-string">'1'</span></span><span> => </span><span><span class="hljs-string">'c'</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>, SORT_NUMERIC);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
많은 개발자들은 실수로 코드를 작성할 때 krsort ()를 KSORT () 로 씁니다. 이 둘의 차이점은 다음과 같습니다.
해결 방법 : 쓸 때 함수 이름 (반대 방향, 반전을 나타내는) 에서 "r" 에주의를 기울이십시오.
비 배열 변수에서 실수로 krsort ()를 사용하는 경우 오류가 트리거됩니다.
</span><span><span class="hljs-variable">$var</span></span><span> = </span><span><span class="hljs-string">'string'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$var</span></span><span>);
해결 방법 : 호출하기 전에 변수 유형을 확인하십시오.
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
}
krsort () 는 간단하지만 매우 실용적인 분류 기능입니다. 행동 특성을 이해하고 일반적인 오해를 피하면 배열을 처리 할 때보다 효율적이고 정확하게 도움이 될 수 있습니다. 실제 개발에서 반환 값 및 정렬 유형에주의를 기울일뿐만 아니라 다른 분류 기능과의 혼란을 피하기 때문에 불필요한 디버깅 시간이 줄어 듭니다.