ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • php 에서의 2차배열 정렬
    개발 2007. 6. 2. 13:25

    $array = array("홍길동", "이순신", "김유신", "을지문덕");

    위의 배열을 정렬하고 싶다면 어떻게 할까?

    그냥 sort($array) 하면 될 것이다.

    그렇다면,

    $array[0] = array("id"=>hong, "name"=>홍길동, "age"=>45);
    $array[1] = array("id"=>lee, "name"=>이순신, "age"=>46);
    $array[2] = array("id"=>kim, "name"=>김유신, "age"=>47);
    $array[3] = array("id"=>ul, "name"=>을지문덕, "age"=>57);

    위의 배열을 이름순으로 정렬하고 싶다면 어떻게 해야할까?

    $array[2](김유신)
    $array[3](을지문덕)
    $array[1](이순신)
    $array[0](홍길동)

    순으로 나타나야할 것이다.

    나는 시간은 좀 걸리겠지만, 간단하지만 간단 한 로직으로 이렇게 생각했다.

    1. 이름만을 뽑아서 일차배열을 만든다.
    2. 이름뿐인 배열을 정렬한다.
    3. 정렬된 내용에 맞춰 다시 값들을 입력한다.

    이렇게 생각하고 코드를 만들고 있었는데, 다른 지인이 편리한 함수를 하나를 알려준다.

     function array_sort($arr, $dimension) {
            if($dimension)
            {
                for($i = 0; $i < sizeof($arr); $i++) {
                    array_unshift($arr[$i], $arr[$i][$dimension]);
                }
                    @sort($arr);
                    for($i = 0; $i < sizeof($arr); $i++) {
                        array_shift($arr[$i]);
                    }
            } else {
                    @sort($arr);
            }
     
            return $arr;
     }

    위의 함수를 사용하니 한큐에 해결이다.

    사용방법은

    array_sort($array, "name");

    하면 됩니다...


    정말 쉽죠???

    반응형

    '개발' 카테고리의 다른 글

    우분투에 APM 설치하기  (0) 2007.06.18
    JTextField 에 숫자만 입력받기  (0) 2007.06.10
    JDIC 프로젝트  (0) 2007.05.17
    자바 소트  (0) 2007.05.17
    gif 나 png 를 ico 로 만들기  (0) 2007.05.17

    댓글

Designed by Tistory.