중급 테스트 3

$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개

이걸 자바스크립트 만들면, 유용하게 쓸수가 있습니다.
제가 저 메뉴 배열 일일이 찍는다고 힘들엇습니다 ㅠㅠ
일좀해야되서 일단 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가지가 스킨에 안올라 오네오...
호스팅 신청 스킨은 있는데 오류나고~~~
대머리 냐고요? 공짜 스킨 좋아해도 머리숫은 많답니다. ㅎ~
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

태그 필터 (최대 3개) 전체 개발자 소스 기타 mysql 팁자료실 javascript php linux flash 정규표현식 jquery node.js mobile 웹서버 os 프로그램 강좌 썸네일 이미지관련 도로명주소 그누보드5 기획자 견적서 계약서 기획서 마케팅 제안서 seo 통계 서식 통계자료 퍼블리셔 html css 반응형 웹접근성 퍼블리싱 표준화 반응형웹 홈페이지기초 부트스트랩 angularjs 포럼 스크린리더 센스리더 개발자톡 개발자팁 퍼블리셔톡 퍼블리셔팁 기획자톡 기획자팁 프로그램강좌 퍼블리싱강좌
+
제목 글쓴이 날짜 조회
14년 전 조회 1,757
14년 전 조회 1,110
14년 전 조회 2,310
14년 전 조회 1,181
14년 전 조회 1,612
14년 전 조회 1,112
14년 전 조회 1,622
14년 전 조회 1,873
14년 전 조회 1,378
14년 전 조회 1,171
14년 전 조회 1,403
14년 전 조회 1,284
14년 전 조회 2,326
14년 전 조회 1,511
14년 전 조회 1,192
14년 전 조회 1,126
14년 전 조회 1,706
14년 전 조회 2,981
14년 전 조회 1,122
14년 전 조회 2,924
14년 전 조회 2,123
14년 전 조회 1,269
14년 전 조회 1,490
14년 전 조회 1,379
14년 전 조회 1,371
14년 전 조회 926
14년 전 조회 1,100
14년 전 조회 1,201
14년 전 조회 1,569
14년 전 조회 1,260
14년 전 조회 1,629
14년 전 조회 1,384
14년 전 조회 1,610
14년 전 조회 1,180
14년 전 조회 1,425
14년 전 조회 1,336
14년 전 조회 1,200
14년 전 조회 1,093
14년 전 조회 1,545
14년 전 조회 1,943
14년 전 조회 1,337
14년 전 조회 1,166
14년 전 조회 3,680
14년 전 조회 1,229
14년 전 조회 1,114
14년 전 조회 2,463
14년 전 조회 1,890
14년 전 조회 2,395
14년 전 조회 962
14년 전 조회 1,209
14년 전 조회 1,041
14년 전 조회 888
14년 전 조회 1,000
14년 전 조회 1,104
14년 전 조회 1,871
14년 전 조회 1,214
14년 전 조회 1,286
14년 전 조회 907
14년 전 조회 1,423
14년 전 조회 2,011
14년 전 조회 1,433
14년 전 조회 1,681
14년 전 조회 1,189
14년 전 조회 1,349
14년 전 조회 1,156
14년 전 조회 1,466
14년 전 조회 1,336
14년 전 조회 779
14년 전 조회 950
14년 전 조회 975
14년 전 조회 1,304
14년 전 조회 1,120
14년 전 조회 1,152
14년 전 조회 1,104
14년 전 조회 1,520
14년 전 조회 1,212
14년 전 조회 1,238
14년 전 조회 1,307
14년 전 조회 1,053
14년 전 조회 2,101
14년 전 조회 1,862
14년 전 조회 1,314
14년 전 조회 1,148
14년 전 조회 2,222
14년 전 조회 1,571
14년 전 조회 1,416
14년 전 조회 1,144
14년 전 조회 1,853
14년 전 조회 4,106
14년 전 조회 2,771
14년 전 조회 1,468
14년 전 조회 1,076
14년 전 조회 1,145
14년 전 조회 1,666
14년 전 조회 1,329
14년 전 조회 1,695
14년 전 조회 1,781
14년 전 조회 1,784
14년 전 조회 975
14년 전 조회 1,215