상세 컨텐츠

본문 제목

xml 데이터 정렬(array, uasort 이용)

Programming/php

by luckey 2019. 2. 9. 12:01

본문

국민연금 공공데이터를 가져와서 화면에 출력하는데 사업장 기본조회시 들어오는 데이터가 정렬이 되지 않고 들어오는 현상이 발생하여 최근 들어온 데이터를 기준으로 다시 정렬이 필요해짐.

받는데이터는 xml 형태로 받아진다.

datacrtym 이 기준월에 대한 부분인데 201707 이 나오다가 갑자기 201802가 나온다.
출력기준에 정렬도 좀 넣어주시지..ㅠ.ㅠ

이대로 출력하면 뒤죽박죽이 되기도 하고 필요한건 가장 최근 3개월 데이터만 필요했기에 이 데이터를 다시 정렬하기로 하고 방법을 찾아보았다.

xml자체 정렬방법은 찾지 못하고 xml 데이터에서 필요한 데이터만 배열(array)에 다시 저장한 후 배열을 정렬하기로 하였다.

배열에 xml 데이터를 넣을때 __toString() 을 해주지 않으면 데이터가 SimpleXMLElement Object 형태로 만들어진다.

위처럼 $itemArray배열에 데이터를 넣고 uasort를 이용해서 데이터를 재정렬한다.
재정렬하게 되면 순서만 바뀌게 되고 배열의 index는 바뀌지 않는다.

uasort 부분의 주석처리된 부분으로 하게되면 ASC 정렬(올림차순-값이 작은것 부터 출력)이 되고 위처럼 하게되면 DESC 정렬(내림차순-값이 큰 것부터 출력)이 된다.

화면에 출력할때는 foreach 로 배열값을 출력하면 된다.

관련글 더보기

댓글 영역