PHP 주요레퍼런스/배열 함수

asort / arsort

웹 개발자의 비상 2011. 8. 25. 22:42
bool asort( array &array [, int sort_flags] )
배열의 값를 기준으로 배열을 정순으로 정렬한되, 키(인덱스)는 바꾸지 않는다.

array 배열 원소의 값을 sort_flags의 기준에 따라 정순으로 정렬한다.
sort는 정렬되면서 키값이 바뀌는 반면 asrot의 경우 정렬한뒤라도 키는 변경되지 않는다.

bool arsort( array &array [, int sort_flags] )
배열의 값를 기준으로 배열을 역순으로 정렬한되, 키(인덱스)는 바꾸지 않는다.

array 배열 원소의 값을 sort_flags의 기준에 따라 역순으로 정렬한다.
sort는 정렬되면서 키값이 바뀌는 반면 asrot의 경우 정렬한뒤라도 키는 변경되지 않는다.

asort와 arsort의 경우 인덱싱 배열에서는 사용될 일이 거의 없으며 주로 연관배열에서 사용하여 키값을 재사용하는 형태로 쓰인다.

예제

<?
$points = array(123, 23, 108, 291, 119);

// 정렬 후에도 각 원소가 가지고 있던 키는 바꾸지 않는다.
asort($points);
// asort() 함수로 정렬시킨 후의 배열
while(list($key, $point) = each($points)) {
echo "\$points[$key] : " . $point . "<br>";
}
/*
$points[1] : 23
$points[2] : 108
$points[4] : 119
$points[0] : 123
$points[3] : 291
*/

$foods = array("food" => "pizza", "beverage" => "cola", "cuisine" => "pasta", "fruit" => "apple");
echo "asort() 함수 정렬 전 : <p>";
while(list($key, $food) = each($foods)) {
echo "\$foods[$key] : " . $food . "<br>";
}
/*
asort() 함수 정렬 전 :
$foods[food] : pizza
$foods[beverage] : cola
$foods[cuisine] : pasta
$foods[fruit] : apple
*/

asort($foods);
echo "<br>asort() 함수 정렬 후 : <p>";
while(list($key, $food) = each($foods)) {
echo "\$foods[$key] : " . $food . "<br>";
}
/*
asort() 함수 정렬 후 :
$foods[fruit] : apple
$foods[beverage] : cola
$foods[cuisine] : pasta
$foods[food] : pizza
*/

arsort($foods);
while(list($key, $food) = each($foods)) {
echo "\$foods[$key] : " . $food . "<br>";
}
/*
$foods[food] : pizza
$foods[cuisine] : pasta
$foods[beverage] : cola
$foods[fruit] : apple
*/
?>

728x90

'PHP 주요레퍼런스 > 배열 함수' 카테고리의 다른 글

natcasesort  (0) 2011.08.25
natsort  (0) 2011.08.25
ksort / krsort  (0) 2011.08.25
sort / rsort  (0) 2011.08.25
shuffle  (0) 2011.08.25