본문 바로가기
PHP/PHP Basic

PHP Sorting Arrays(정렬 배열)

by 진격의 파파 2013. 6. 12.
반응형

 

이번장에서는 Array Sorting에 대해서 알아보겠습니다.

sorting 이란 정렬이란 의미죠. a, b, c, d... , 1, 2, 3, 4 .... , ㄱ, ㄴ, ㄷ, ㄹ ... 등 순으로 정렬할 때 사용합니다.

sorting(정렬) 의 방법에는

• sort() - 오름차순 정렬합니다.
• rsort() - 내림차순 정렬합니다.
• asort() - 값에 따라 오름차순으로 연관된 배열을 정렬합니다.
• ksort() - 키값에 따라 오름차순으로 연관된 배열을 정렬합니다.
• arsort() - 값에 따라 내림차순으로 연관된 배열을 정렬합니다.
• krsort() - 키값에 따라 내림차순으로 연관된 배열을 정렬합니다.

가 있습니다.

sort(), rsort()

<?php
$fruits=array("Apple","Orange","Banana");
sort($fruits);

$clength=count($fruits);
for($x=0;$x<$clength;$x++)
{
echo $fruits[$x];
echo "<br>";
}

?>

// 위 구문을 출력하면

Apple

Orange

Banana

처럼 오름차순으로 정렬되어 나오는것을 확인할 수 있습니다.

마찬가지로 rsort() 함수를 사용하면 그와 반대로 내림차순으로 정렬되어 나오게 됩니다.

숫자, 한글, 알파벳 등도 이용해서 테스트 해보길 바랍니다.

문제) 변수 $nums 에 숫자 22, 41, 10, 33, 3, 1 을 내림차순으로 정렬되어 나오게 해보세요~

asort(), ksort()

<?php
$age=array("Park"=>"35","Kim"=>"37","Lee"=>"43");
asort($age);

foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>

// foreach 관련해서는 다음 포스팅에서 자세히 알아보겠습니다. 일단 어떻게 출력되는지에 대해서 먼저 알아보겠습니다. asort() 함수는 값에 따라 오름차순으로 정렬된다 하였습니다. 그럼 값은 무엇이고 키값은 무엇인지 우선 알아보겠습니다.

배열 array의 함수에 ("Park"=>"35","Kim"=>"37","Lee"=>"43") 내용이 들어있는데 "=>" 을 기준으로 좌측에 있는부분 즉 Park, Kim, Lee 가 키값이라 합니다. 그럼 당연히 값은 우측에 있는 "35, 37,43" 이겠죠

자! 그럼 값에 따라 오름차순으로 정렬된다 했으니 당연히 숫자를 기준으로 정렬될것입니다.

위구문을 출력해보면

Key=Park, Value=35
Key=Kim, Value=37
Key=Lee, Value=43

처럼 출력됩니다.

그럼 그 반대로 키값을 정렬하는 ksort() 함수를 사용하게 되면 어떻게 출력될까요?
Key=Kim, Value=37
Key=Lee, Value=43

Key=Park, Value=35

처럼 키값을 기준으로 오름차순으로 정렬되게 되어 나오게 됩니다.

arsort(), krsort()

차 위 함수 두개는 asort(), ksort() 함수와 반대로 키와 값을 기준으로 내림차순되어 나타나게 됩니다.

위 예제를 이용하여 asort() 또는 ksort()을 arsort(), krsort() 으로 변경하여 출력해보시기 바랍니다.

그냥 설명된 글을 읽는것보다 한번 직접코딩을 해보면 감이 확 올테니 직접 코딩을 해보는게 아주 중요합니다.

다음장에서는 while, for, foreach 에 대해서 알아보겠습니다. 3개의 함수는 반복문(loop)을 실행하는 함수입니다.

 

반응형

'PHP > PHP Basic ' 카테고리의 다른 글

PHP Function(함수)  (0) 2013.06.14
PHP 반복문(while, for, foreach)  (0) 2013.06.13
PHP Array(배열) 문법  (0) 2013.06.11
PHP switch ~ case 구문  (0) 2013.06.10
PHP IF ~ ELSE 문  (0) 2013.06.07