배열인덱스 문자열을 활용해 글자길이순으로 정렬하기
많은 문자열에서 비교할때 문자열의 글자길이가 짧은것인 긴것안에 포함 되어 체크 할때 문제가 발생하는 경우가 있는데 사람 같이 지능이 있는 경우 비교할때 판단을 할 수 있지만 프로그램은 그렇지 못하기 때문에 비교 순서를 글자길이가 긴것을 먼저 비교하면 좋아지는 경우가 있는데 이런 경우 사용하는 방법 입니다.
if ( $MODE == 'test' ) {
$aString = ['한글' => 1, '국어공부' => 2, '산수틀' => 1, '노력하기중' => 2];
print_r($aString);
uksort($aString, function($a, $b) {
return strlen($b) - strlen($a);
});
print_r($aString);
exit;
}
위 결과는 아래와 같이 나오게 됩니다.
Array
(
[한글] => 1
[국어공부] => 2
[산수틀] => 1
[노력하기중] => 2
)
Array
(
[노력하기중] => 2
[국어공부] => 2
[산수틀] => 1
[한글] => 1
)
이제 나온 결과를 foreach 같은 것으로 루프 돌면서 비교를 하면 됩니다.