mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Friday, May 25, 2007

PHP 문자열 배열 정렬/소트/소팅 함수, 대소문자 구분 없이; Sort Ignore Case, String Array


PHP 에서 배열 요소들을 순서대로 정렬하는 방법입니다. 영문 문자열 배열일 경우, 대소문자를 구분하지 않고 정렬하는 것이 자연스럽습니다.

C언어의 qsort() 함수처럼, PHP에서는 usort / sort 등의 함수를 사용할 수 있습니다.

usort 함수에 'strcasecmp' 라는 비교 함수 (Comparison Function) 를 넣으면 대소문자 구분 없이 소팅됩니다. 그런데 비교 함수 뒤에는 소괄호를 붙이면 안됩니다. strcasecmp() 이렇게 하면 PHP Warning: usort(): Invalid comparison function (잘못된 비교 함수) 이런 경고가 나오고 소팅도 되지 않습니다.

usort, sort, strcasecmp 함수 사용 예제


소스 파일명: example.php
<html>
<head>
<title>PHP Example</title>
</head>

<body>

<?php

  // 요소들이 순서 없이 섞여 있는 배열
  $a = array("bbb", "AA", "c", "ZZ", "ZZ2", "ZZ10", "CCC", "aa", "BBBB");


  // 대소문자 구분없이 소팅하기
  // 실용적임
  usort($a, 'strcasecmp');
  print_r($a);

/* 출력 결과:
Array
(
    [0] => aa
    [1] => AA
    [2] => bbb
    [3] => BBBB
    [4] => c
    [5] => CCC
    [6] => ZZ
    [7] => ZZ10
    [8] => ZZ2
)
*/



  // 대소문자 구분하여 소트
  sort($a);
  print_r($a);
/* 출력 결과
Array
(
    [0] => AA
    [1] => BBBB
    [2] => CCC
    [3] => ZZ
    [4] => ZZ10
    [5] => ZZ2
    [6] => aa
    [7] => bbb
    [8] => c
)
*/

?>

</body>
</html>





tag: php
PHP

0 Comments:

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top