유

중급 테스트 3

· 2011-08-18 (목) 12:30:48 · 2416 · 9
$array = Array();
$array[1] = array('title'=>'메뉴1', 'up_key'=>0);
$array[2] = array('title'=>'메뉴1-1', 'up_key'=>1);
$array[3] = array('title'=>'메뉴1-2', 'up_key'=>1);
$array[4] = array('title'=>'메뉴1-3', 'up_key'=>1);
$array[5] = array('title'=>'메뉴1-1-1', 'up_key'=>2);
$array[6] = array('title'=>'메뉴1-1-2', 'up_key'=>2);
$array[7] = array('title'=>'메뉴1-1-3', 'up_key'=>2);
$array[8] = array('title'=>'메뉴1-2-1', 'up_key'=>3);
$array[9] = array('title'=>'메뉴1-2-2', 'up_key'=>3);
$array[10] = array('title'=>'메뉴1-2-3', 'up_key'=>3);
$array[11] = array('title'=>'메뉴1-3-1', 'up_key'=>4);
$array[12] = array('title'=>'메뉴1-3-2', 'up_key'=>4);
$array[13] = array('title'=>'메뉴1-3-3', 'up_key'=>4);

$array[14] = array('title'=>'메뉴2', 'up_key'=>0);
$array[15] = array('title'=>'메뉴2-1', 'up_key'=>14);
$array[16] = array('title'=>'메뉴2-2', 'up_key'=>14);
$array[17] = array('title'=>'메뉴2-3', 'up_key'=>14);
$array[18] = array('title'=>'메뉴2-1-1', 'up_key'=>15);
$array[19] = array('title'=>'메뉴2-1-2', 'up_key'=>15);
$array[20] = array('title'=>'메뉴2-1-3', 'up_key'=>15);
$array[21] = array('title'=>'메뉴2-2-1', 'up_key'=>16);
$array[22] = array('title'=>'메뉴2-2-2', 'up_key'=>16);
$array[23] = array('title'=>'메뉴2-2-3', 'up_key'=>16);
$array[24] = array('title'=>'메뉴2-3-1', 'up_key'=>17);
$array[25] = array('title'=>'메뉴2-3-2', 'up_key'=>17);
$array[26] = array('title'=>'메뉴2-3-3', 'up_key'=>17);

$array[27] = array('title'=>'메뉴3', 'up_key'=>0);
$array[28] = array('title'=>'메뉴3-1', 'up_key'=>27);
$array[29] = array('title'=>'메뉴3-2', 'up_key'=>27);
$array[30] = array('title'=>'메뉴3-3', 'up_key'=>27);
$array[31] = array('title'=>'메뉴3-1-1', 'up_key'=>28);
$array[32] = array('title'=>'메뉴3-1-2', 'up_key'=>28);
$array[33] = array('title'=>'메뉴3-1-3', 'up_key'=>28);
$array[34] = array('title'=>'메뉴3-2-1', 'up_key'=>29);
$array[35] = array('title'=>'메뉴3-2-2', 'up_key'=>29);
$array[36] = array('title'=>'메뉴3-2-3', 'up_key'=>29);
$array[37] = array('title'=>'메뉴3-3-1', 'up_key'=>30);
$array[38] = array('title'=>'메뉴3-3-2', 'up_key'=>30);
$array[39] = array('title'=>'메뉴3-3-3', 'up_key'=>30);
 
다음과 같은 메뉴의 정보를 저장한 배열이 있습니다.
각 메뉴에는 고유의 키값을 가지며, 자신의 바로 상위 메뉴의 키값을 up_key 에 저장하고 있습니다.
최상위 메뉴의 up_key 는 0 입니다.
메뉴는 무한 확장된다는 전제가 있습니다.
 
1. 임의의 메뉴키값을 받았을때 그 메뉴의 최상위 메뉴의 배열을 가져오는 함수를 만드세요.
 
2. 임의의 메뉴키값을 받았을때 그 메뉴의 바로 밑(한 단계밑 만)의 메뉴들을 배열로 모두 가져오는 함수를 만드세요.
 
내장함수의 제한은 없습니다.
|

댓글 9개

2011-08-18 (목) 13:02:22
이걸 자바스크립트 만들면, 유용하게 쓸수가 있습니다.
제가 저 메뉴 배열 일일이 찍는다고 힘들엇습니다 ㅠㅠ
일좀해야되서 일단 1번 문제만

function parent_key_return($up_key,$array){

if($array[$up_key][up_key] == 0){
return $array[$up_key];
}
if($array[$up_key][up_key] != 0){
parent_key_return($array[$up_key][up_key],$array);
}

}



$up_key = 29;
$parent = parent_key_return($up_key,$array);
print_r($parent);
오늘은 인기 없군요...
의욕 떨어지는데...
난이도가 너무 낮아서 그런가....
벙개에 쏠리는 바람에 ...
도~~~~~전
/**
* 임의의 메뉴키값을 받았을때 그 메뉴의 최상위 메뉴의 배열을 가져오는 함수를 만드세요.
**/

function get_menu_parent($array,$key){

if(!isset($array[$key])) return false;

while($key !== 0){

if($array[$key]['up_key'] == 0) break;
$key = $array[$key]['up_key'];

}

return $array[$key];
}

/**
* 임의의 메뉴키값을 받았을때 그 메뉴의 바로 밑(한 단계밑 만)의 메뉴들을
* 배열로 모두 가져오는 함수를 만드세요.
**/

function get_menu_child($array,$key){

if(!isset($array[$key])) return false;

foreach($array as $k => $v){
$_tmp[$v['up_key']][] = $k;
}

foreach($_tmp[$key] as $k => $v){
$result[] = $array[$v];
}

return $result;
}

print_r( get_menu_parent($array,32) );

print_r( get_menu_child($array,27) );


일에 바쁘다고 참여를 못했네요. 얼릉 하고.. 퇴근을 ㅎㅎ
function get_root_menu($array, $k){

if (empty($array[$k])) return Array();

$up_key = $array[$k]['up_key'];

if ($up_key == 0) return array_merge(array('key'=>$k), $array[$k]);
else return get_root_menu($array, $up_key);
}

function get_sub_menu($array, $k){

if (empty($array[$k])) return Array();

$return = Array();
foreach($array as $sk=>$v){

if ($v['up_key'] == $k) $return[] = array_merge(array('key'=>$sk), $v);
}

return $return;
}

print_r(get_root_menu($array, 39));

print_r(get_sub_menu($array, 15));
우후훗~
고수님들 호스팅 신청 게시판이나 만들어 올려주삼~
무료호스팅 사이트 하나 만들겟삼~
트레픽 스킨도 있었는데 지웠더만요;
호스팅 신청 스킨, 도매인 검색 스킨, 트레픽스킨 3가지가 스킨에 안올라 오네오...
호스팅 신청 스킨은 있는데 오류나고~~~
대머리 냐고요? 공짜 스킨 좋아해도 머리숫은 많답니다. ㅎ~
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
11-08-16 조회 2,413
11-08-16 조회 2,385
11-08-12 조회 2,222
11-08-02 조회 2,802
11-07-27 조회 2,193
11-07-25 조회 2,315
11-06-28 조회 2,478
11-06-06 조회 3,993
11-06-04 조회 2,582
11-04-25 조회 6,166
11-04-22 조회 2,669
11-04-21 조회 2,888
11-04-08 조회 3,302
11-03-31 조회 2,811
11-03-20 조회 3,232
11-03-10 조회 2,858
11-03-04 조회 3,183
11-03-03 조회 2,905
11-02-26 조회 4,329
11-02-14 조회 5,682
11-02-08 조회 3,288
11-01-30 조회 5,386
11-01-14 조회 5,170
11-01-14 조회 3,721
11-01-14 조회 2,882
11-01-14 조회 2,919
11-01-14 조회 3,065
11-01-12 조회 2,834
11-01-07 조회 4,499
10-12-29 조회 2,491
10-12-22 조회 2,469
10-12-05 조회 5,871
10-11-22 조회 5,228
10-11-13 조회 3,601
10-10-27 조회 3,212
10-10-21 조회 2,911
10-09-21 조회 2,915
10-09-17 조회 2,954
10-09-15 조회 3,400
10-09-14 조회 4,015
10-05-18 조회 2,885
10-02-17 조회 4,318
10-02-12 조회 3,089
09-12-14 조회 5,153
09-12-14 조회 6,025
09-09-19 조회 4,384
09-08-16 조회 6,233
09-07-22 조회 5,638
09-04-13 조회 3,049
09-03-15 조회 5,051
09-03-05 조회 3,881
09-02-09 조회 2,829
08-12-30 조회 3,021
08-12-06 조회 3,221
08-11-30 조회 3,563
08-10-18 조회 4,400
08-10-08 조회 3,791
08-09-19 조회 4,348
08-09-05 조회 2,987
08-09-05 조회 5,094
08-09-05 조회 2,974
08-09-05 조회 3,566
08-09-05 조회 3,483
08-09-01 조회 4,503
08-08-07 조회 2,754
08-06-08 조회 3,226
08-06-02 조회 2,817
08-05-26 조회 5,242
08-05-09 조회 4,308
08-04-22 조회 3,902
08-04-17 조회 4,493
08-04-17 조회 5,564
08-04-17 조회 3,708
08-04-17 조회 8,687
08-04-17 조회 4,596
08-04-17 조회 4,498
08-04-09 조회 3,053
08-03-31 조회 3,551
08-03-26 조회 3,255
08-03-25 조회 3,540
08-03-25 조회 3,969
08-03-25 조회 4,012
08-03-25 조회 3,670
08-03-25 조회 3,563
08-03-25 조회 3,563
08-03-25 조회 5,254
08-02-03 조회 5,331
08-01-18 조회 6,625
08-01-17 조회 3,927
08-01-17 조회 3,738
08-01-12 조회 4,033
08-01-08 조회 3,355
07-12-28 조회 4,624
07-12-04 조회 3,499
07-11-30 조회 5,109
07-11-30 조회 5,718
07-11-02 조회 4,018
07-10-24 조회 3,993
07-10-24 조회 3,274
07-10-24 조회 3,381