1차원 배열의 경우에는 간단하게 정렬을 할 수 있습니다.
2차원 배열등 다차원 배열의 경우에는 어떻게 하는지 확인을 해보도록 하겠습니다.
$array = array(
array(
'id' => 0,
'track_num' => 7,
'title' => 'FAKE LOVE',
'artist' => '방탄소년단(BTS)'
),
array(
'id' => 1,
'track_num' => 1,
'title' => 'YES or YES',
'artist' => '트와이스'
),
array(
'id' => 2,
'track_num' => 3,
'title' => '달라달라',
'artist' => 'ITZY(있지)'
),
array(
'id' => 3,
'track_num' => 10,
'title' => '벌써 12시',
'artist' => '청하'
),
array(
'id' => 4,
'track_num' => 28,
'title' => '열애중',
'artist' => '벤'
),
array(
'id' => 5,
'track_num' => 14
'title' => '삐삐',
'artist' => '아이유(IU)'
),
array(
'id' => 6,
'track_num' => 30,
'title' => '가을 타나 봐',
'artist' => '바이브'
),
array(
'id' => 7,
'track_num' => 11,
'title' => '그때 헤어지면 돼',
'artist' => '로이킴'
),
array(
'id' => 8,
'track_num' => 31,
'title' => 'IDOL',
'artist' => '방탄소년단(BTS)'
),
);
위처럼 다차원 배열로 된 배열이 있다고 가정하겠습니다.
배열에는 가수 이름과 노래 제목, 트랙 순서등이 정의 되어있습니다.
이것을 track_num(트랙 순서)로 정렬 하는 방법을 보겠습니다.
foreach ((array) $array as $key => $value) {
$sort[$key] = $value['track_num'];
}
array_multisort($sort, SORT_ASC, $array);
print_r($array);
정렬 전용 배열인 array_multisort()를 사용하여 한번에 했습니다.
결과는 다음과 같습니다.
Array
(
[0] => Array
(
[id] => 1
[track_num] => 1
[title] => YES or YES
[artist] => 트와이스
)
[1] => Array
(
[id] => 2
[track_num] => 3
[title] => 달라달라
[artist] => ITZY(있지)
)
[2] => Array
(
[id] => 0
[track_num] => 7
[title] => FAKE LOVE
[artist] => 방탄소년단(BTS)
)
[3] => Array
(
[id] => 3
[track_num] => 10
[title] => 벌써 12시
[artist] => 청하
)
[4] => Array
(
[id] => 7
[track_num] => 11
[title] => 그때 헤어지면 돼
[artist] => 로이킴
)
[5] => Array
(
[id] => 5
[track_num] => 14
[title] => 삐삐
[artist] => 아이유(IU)
)
[6] => Array
(
[id] => 4
[track_num] => 28
[title] => 열애중
[artist] => 벤
)
[7] => Array
(
[id] => 6
[track_num] => 30
[title] => 가을 타나 봐
[artist] => 바이브
)
[8] => Array
(
[id] => 8
[track_num] => 31
[title] => IDOL
[artist] => 방탄소년단(BTS)
)
)
출력된 결과처럼 track_num로 정렬된것을 볼 수 있습니다.
다차원 배열이라도 array_multisort()를 이용하여 간단하게 할 수 있습니다.
댓글