조용학을 만나다

바로 어제 2004.10.08.금.
우연히 퇴근하는데 전철안에서 지축역을 지나고 있을때…
만났다.

시간이 없어 긴 얘기는 못했지만… 여전히 잘 ~~~ 지내고 있는 듯…

2차배열중에서 몇몇 필드값만으로 정렬하기 (DB아님)

chiro

###########################################
# 2차원 배열을 중 몇몇 필드만 sort하는 방법 #
###########################################

phpschool에서 검색을 해서 2차원 배열에서 몇몇 필드값을 이용해서 정렬하는 방법을
찾았지만 없어서 php메뉴얼을 뒤졌습니다. 결국 array_multisort 를 찾게 되었습니다.
아래는 그 결과물을 정리해서 올립니다. 그냥 참조하시고 많은 리플 바랍니다.

##############################################################################
$arr[0] = array(0=>’1990-10-10′,1=>1,2=>’홍길동’,3=>20000,4=>’제목1′);
$arr[1] = array(0=>’2001-10-10′,1=>4,2=>’김길동’,3=>15000,4=>’제목2′);
$arr[2] = array(0=>’2003-10-10′,1=>3,2=>’박길동’,3=>30000,4=>’제목3′);
$arr[3] = array(0=>’2000-10-10′,1=>2,2=>’한길동’,3=>18000,4=>’제목4′);
$arr[4] = array(0=>’1998-10-10′,1=>5,2=>’chiro’,3=>10000,4=>’제목5′);

foreach ($arr as $key => $row) {
$aaa[$key] = $row[0]; // 날짜임
$bbb[$key] = $row[1]; // 순위
$ccc[$key] = $row[2]; // 이름
$ddd[$key] = $row[3]; // 가격
$eee[$key] = $row[4]; // 제목임
}

array_multisort($aaa, SORT_ASC, $eee, SORT_ASC, $arr); // 날짜과 제목를 정렬하는 경우
// array_multisort($bbb, SORT_ASC, $aaa, SORT_ASC, $arr); // 순위와 날짜를 정렬하는 경우
// array_multisort($ccc, SORT_ASC, $aaa, SORT_ASC, $arr); // 이름과 순위를 정렬하는 경우
// array_multisort($bbb, SORT_ASC, $aaa, SORT_ASC, $ccc, SORT_ASC, $arr); // 순위와 날짜와 이름을 정렬하는 경우
reset($arr);

// print_r($arr);

while (list($key, $val) = each($arr)) {
echo “$val[0] – $val[1] – $val[2] – $val[3] – $val[4]”;
echo “
“;
}
?>

연휴 잘들 보내셨습니까?

긴? 짧은? 연휴였네요.
이제 직장인들의 낙인 휴일이 없습니다. 11월, 12월 열심히 일합시다.
그나마 있는 크리스마스가 노는 토요일이네요. ㅋㅋㅋ
이번에 벽제 가서 종목이넘 얼굴이나 볼까 했는데 전화기가 꺼져있다네~~~
이틀 일하고 또 쉬니까 그나마 좋긴 한데…
하반기 자유로 모임도 함 해야지? 걍 송년회랑 같이 할건가?

배열을 지정된 순서부터 모두출력

/**
배열원소를 지정된 순서부터 나열한다.
**/
function array_sort ($array, $total_cnt, $start_cnt) {
if($start_cnt!=0){
$a_cnt = 0;
for($i=$start_cnt; $i<$total_cnt; $i++){
$array_test[$a_cnt] = $array[$i];
$a_cnt++;
}

for($i=0; $i<$start_cnt; $i++){
$array_test[$a_cnt] = $array[$i];
$a_cnt++;
}
return $array_test;
}else{
return $array;
}
}

$array = array (“four”, “three”, “twenty”, “ten”, “nine”, “five”, “eight”);

$array_test = array_sort($array, sizeof($array), 3);

while (list ($key, $value) = each ($array_test)) {
echo “$key: $value

“;
}

9월 코드를 짜다보면 가능한 루프를 안쓰는게 좋더군요..
시간이나 리소스나.. 되도록 php에서 제공하는 함수를 사용하는 편입니다.
물론.. php 제공함수도 내부적으로 루프를 돌리겠죠..

그래도;; 위 코드를 루프없이 한번 바꿔봤습니다..

$array = array (“four”, “three”, “twenty”, “ten”, “nine”, “five”, “eight”);

function array_remerge($arArray, $nNum)
{
if(!is_array($arArray)) return false;
if($nNum <1 || $nNum > count($arArray)) return $arArray;

return array_merge(array_slice($arArray, $nNum),array_slice($arArray, 0, $nNum));
}

$arReMerge = array_remerge($array, 3);
print_r($arReMerge);
?> 09/20 12:52:47

9월 위 코드에서
if($nNum <1 || $nNum > count($arArray)) return $arArray;
가 빠지니.. 좀더 재미있는 효과(?)가 나오네요..
$arReMerge = array_remerge($array, -3);
같은게 가능해지네요…