본문 바로가기

ㅋ/PHP

php array_multisort()

참고 :: http://kr2.php.net/manual/en/function.array-multisort.php

와... 놀랍다...

첫번째 예제를 보시라,

ar1을 기준으로 정렬을 하는데, 그 인덱스에 맞춰서 ar2가 연동되어 정렬이 된다.

정확히 내가 원하던 것

+) 그런데 SORT_STRING 과 SORT_NUMBERIC 의 차이를 잘 모르겠다...

<?php
$ar1 = array("1000", "11", "200", "300", "1", "a", "ba", "aa", "ba");
$ar2 = array(     1,    2,     3,     4,   5,   6,    7,    8,    9);
array_multisort($ar1, SORT_STRING, $ar2);
print_r($ar1);
print_r($ar2);
array_multisort($ar1, SORT_NUMERIC, $ar2);
print_r($ar1);
print_r($ar2);
?>

output :
Array
(
    [0] => 1
    [1] => 1000
    [2] => 11
    [3] => 200
    [4] => 300
    [5] => a
    [6] => aa
    [7] => ba
    [8] => ba
)
Array
(
    [0] => 5
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 6
    [6] => 8
    [7] => 7
    [8] => 9
)
Array
(
    [0] => a
    [1] => ba
    [2] => aa
    [3] => ba
    [4] => 1
    [5] => 11
    [6] => 200
    [7] => 300
    [8] => 1000
)
Array
(
    [0] => 6
    [1] => 7
    [2] => 8
    [3] => 9
    [4] => 5
    [5] => 2
    [6] => 3
    [7] => 4
    [8] => 1
)

감이 잡히는가 ...