웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
배열의 정렬에 대한 약간의 강의
2004.04.02 08:57
my-sql에 대한 정렬강의라던가 예는 많이 올라왔는데 배열에 대한 정렬은 몇개 안되더군요..
해서 좀 올립니다.
다차원 정렬에 대한 강좌는 Doogi님께서 이미 올리셨으니까 아래 링크를 참조하세요.
http://www.nzeo.com/bbs/zboard.php?id=p_study&page=1&sn1=&divpage=1&sn=off&ss=off&sc=on&keyword=정렬&select_arrange=headnum&desc=asc&no=415
$fruits = array("강아지","멍멍이","바둑이","고양이");
이렇게 뽑혀진 데이터가 정렬값이 있을경우 ..
순차 정렬하는 법은 sort 함수를 사용하시면 됩니다.
아래는 예제^^
<?
$fruits = array("강아지","멍멍이","바둑이","고양이");
sort($fruits);
for($i=0;$i<count($fruits);$i++){
echo"$fruits[$i]<br>";
}
?>
결과>>
강아지
고양이
멍멍이
바둑이
반대로 역정렬하는 방법은 rsort 함수를 사용하시면 됩니다.
<?
$fruits = array("강아지","멍멍이","바둑이","고양이");
rsort($fruits);
for($i=0;$i<count($fruits);$i++){
echo"$fruits[$i]<br>";
}
?>
결과 >>>
바둑이
멍멍이
고양이
강아지
키와 값의 연결관계는 유지하면서 키에 의해 정렬하려면 ksort함수를 사용합니다.
<?
$fruits = array("2"=>"강아지","4"=>"멍멍이","1"=>"바둑이","3"=>"고양이");
ksort($fruits);
for(reset($fruits); $key = key($fruits); next($fruits)) {
echo "fruits[$key] = ".$fruits[$key]."<br>";
}
?>
결과 >>
fruits[1] = 바둑이
fruits[2] = 강아지
fruits[3] = 고양이
fruits[4] = 멍멍이
역정렬은 krsort함수를 사용합니다.
<?
$fruits = array("2"=>"강아지","4"=>"멍멍이","1"=>"바둑이","3"=>"고양이");
krsort($fruits);
for(reset($fruits); $key = key($fruits); next($fruits)) {
echo "fruits[$key] = ".$fruits[$key]."<br>";
}
?>
결과 >>
fruits[4] = 멍멍이
fruits[3] = 고양이
fruits[2] = 강아지
fruits[1] = 바둑이
이상 홈피만들다 지루해서 함 올려봅니당-0-
해서 좀 올립니다.
다차원 정렬에 대한 강좌는 Doogi님께서 이미 올리셨으니까 아래 링크를 참조하세요.
http://www.nzeo.com/bbs/zboard.php?id=p_study&page=1&sn1=&divpage=1&sn=off&ss=off&sc=on&keyword=정렬&select_arrange=headnum&desc=asc&no=415
$fruits = array("강아지","멍멍이","바둑이","고양이");
이렇게 뽑혀진 데이터가 정렬값이 있을경우 ..
순차 정렬하는 법은 sort 함수를 사용하시면 됩니다.
아래는 예제^^
<?
$fruits = array("강아지","멍멍이","바둑이","고양이");
sort($fruits);
for($i=0;$i<count($fruits);$i++){
echo"$fruits[$i]<br>";
}
?>
결과>>
강아지
고양이
멍멍이
바둑이
반대로 역정렬하는 방법은 rsort 함수를 사용하시면 됩니다.
<?
$fruits = array("강아지","멍멍이","바둑이","고양이");
rsort($fruits);
for($i=0;$i<count($fruits);$i++){
echo"$fruits[$i]<br>";
}
?>
결과 >>>
바둑이
멍멍이
고양이
강아지
키와 값의 연결관계는 유지하면서 키에 의해 정렬하려면 ksort함수를 사용합니다.
<?
$fruits = array("2"=>"강아지","4"=>"멍멍이","1"=>"바둑이","3"=>"고양이");
ksort($fruits);
for(reset($fruits); $key = key($fruits); next($fruits)) {
echo "fruits[$key] = ".$fruits[$key]."<br>";
}
?>
결과 >>
fruits[1] = 바둑이
fruits[2] = 강아지
fruits[3] = 고양이
fruits[4] = 멍멍이
역정렬은 krsort함수를 사용합니다.
<?
$fruits = array("2"=>"강아지","4"=>"멍멍이","1"=>"바둑이","3"=>"고양이");
krsort($fruits);
for(reset($fruits); $key = key($fruits); next($fruits)) {
echo "fruits[$key] = ".$fruits[$key]."<br>";
}
?>
결과 >>
fruits[4] = 멍멍이
fruits[3] = 고양이
fruits[2] = 강아지
fruits[1] = 바둑이
이상 홈피만들다 지루해서 함 올려봅니당-0-
댓글 2
-
토끼군
2004.04.11 10:04
-
이남석
2006.08.08 11:40
2차원배열에서 배열내 특정 키값으로 배열들의 순서를 정렬하는 방법은요?
예를들면
$a[0]=array("no"=>15,"ilsi"=>"07/25","name"=>"홍길동","grade"=>56);
$a[1]=array("no"=>8,"ilsi"=>"08/12","name"=>"남민경","grade"=>34);
$a[2]=array("no"=>22,"ilsi"=>"06/17","name"=>"아무개","grade"=>72);
이런 배열이 있다고 하면 각 배열의 순서를 "ilsi" 라는 키의 값 순으로 정렬하는게
명령어 하나로 가능한 방법이 있는지요?
제목 | 글쓴이 | 날짜 |
---|---|---|
초간단 스팸방지 하면서 곧바로 메일 보내기 [3] | U2em | 2004.05.31 |
해당 ftp 파일 서버에서 다른곳의 ftp 파일 서버로 백업용도 및 전송하기.. [9] | 김동욱 | 2004.05.30 |
초간단 설문조사 소스 [3] | 이혁 | 2004.05.27 |
PHP로 구현하는 음악 감상실 [9] | 컴도미 | 2004.05.21 |
[국밥PHP] 1-1(1). 개념정리 Break Time (Build 1) [7] | 9000㎒ | 2004.05.18 |
팁 아닌 팁 한달전... | http://zentoo.com | 2004.05.15 |
포털사이트 처럼 시스템 점검중 만들기 [3] | http://zentoo.com | 2004.05.14 |
PHP 4에서 PHP 5로 이행 [5] | 이종현 | 2004.04.30 |
PHP5 RC2 Released. [4] | 써니루루☆ | 2004.04.27 |
트랙백 구현하기 - 2. 트랙백의 형식 | TheMics | 2004.04.22 |
트랙백 구현하기 - 2. 트랙백의 형식 | TheMics | 2004.04.22 |
엔지오 채널 따라하기 -_-& www자동 붙이기 [6] | 박종찬 | 2004.04.18 |
트랙백 구현하기 - 1. 트랙백이란 무엇인가? [4] | TheMics | 2004.04.18 |
[국에 밥말아먹는 PHP 프로그래밍] 1-1. PHP는 뭐하는 밥이냐?! (상) (Build 2) [17] | 9000㎒ | 2004.04.18 |
배열의 정렬에 대한 약간의 강의 [2] | ♡다솜지기♡ | 2004.04.02 |
드디어 PHP 5 RC1 발표(04.03.18) [8] | 써니루루☆ | 2004.03.19 |
PHP와 MYSQL연동 관련함수 [3] | 백무혼 | 2004.03.07 |
함수] Exec 함수에 대한 간략한 설명 [3] | NS | 2004.03.05 |
초간단 인라이브 방송여부 알아보기 프로그램. [12] | 심심타 | 2004.03.01 |
[허접팁]윈엠프 리스트창에 방송정보 보여주기;;[수정] [5] | 『처니리♂』 | 2004.02.29 |
asort/arsort:
sort와 같지만, 키 값을 유지합니다. arsort는 반대로 정렬합니다.
예를 들어서 array(1=>"purple", 2=>"orange", 4=>"zog")라는 배열을 asort로 정렬하면 array(2=>"orange", 1=>"purple", 4=>"zog")가 됩니다.
참고: sort는 array(0=>"orange", 1=>"purple", 2=>"zog")가 됩니다. 각각의 원소에 대한 키 값이 죄다 바뀌었음을 알 수 있죠
natsort/natcasesort:
Natural Order String Comparison 알고리즘을 사용하여 정렬을 합니다. (원소 값만 비교하며, asort와 같은데 비교 방법만 다르다고 생각하셔도 됩니다)
이 알고리즘의 특징은 문자열 안에 포함된 숫자의 정렬이 좀 더 세심하다는 것입니다. 예를 들어서 보통 정렬 함수는 [ art1, art10, art11, art5, art7 ]과 같이 정렬하지만, 이 정렬 함수는 [ art1, art5, art7, art10, art11 ] 과 같이 숫자가 들어 있는 경우에 대해서 더 정확한 결과를 반환합니다. (문자열 중간의 숫자에 대해서도 똑같이 작동합니다)
natcasesort는 natsort와 같지만 대소문자를 구별합니다.
참고: natsort/natcasesort 함수는 내부적으로 uasort 함수와 strnatcmp/strnatcasecmp 함수를 사용합니다. (아마도)
usort/uasort/uksort:
사용자가 지정한 비교 함수를 사용하여 정렬을 합니다. usort는 sort에, uasort는 asort에, uksort는 ksort에 각각 대응합니다.
둘째 인자에 사용자 비교 함수의 이름을 문자열로 씁니다. (참고: php에서의 관행으로, 클래스 멤버 함수는 배열을 사용해서 나타냅니다.)
해당 비교 함수는 두 개의 인자를 가지며(편의상 a, b라고 칭함), a가 b의 앞에 있어야 한다면 -1, 뒤에 있어야 한다면 1, 어디 있든지 상관 없다면 0을 반환합니다. (당연하지만, 이 비교 함수의 반환값이 1이면 두 원소가 바뀌어야 하겠죠. -_- 0일 때는 정의되지 않았습니다.)
참고: 보통 사용하는 "오름차순" 정렬을 할 때 사용자 비교 함수는 다음과 같습니다: function cmp($a, $b) { return ($a==$b ? 0 : ($a<$b ? -1 : 1)); }