중급 테스트 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,657
14년 전 조회 1,009
14년 전 조회 2,181
14년 전 조회 1,083
14년 전 조회 1,496
14년 전 조회 1,012
14년 전 조회 1,518
14년 전 조회 1,769
14년 전 조회 1,278
14년 전 조회 1,079
14년 전 조회 1,290
14년 전 조회 1,185
14년 전 조회 2,214
14년 전 조회 1,406
14년 전 조회 1,099
14년 전 조회 1,015
14년 전 조회 1,611
14년 전 조회 2,885
14년 전 조회 1,012
14년 전 조회 2,823
14년 전 조회 1,986
14년 전 조회 1,152
14년 전 조회 1,386
14년 전 조회 1,273
14년 전 조회 1,269
14년 전 조회 819
14년 전 조회 987
14년 전 조회 1,094
14년 전 조회 1,478
14년 전 조회 1,159
14년 전 조회 1,537
14년 전 조회 1,288
14년 전 조회 1,459
14년 전 조회 1,057
14년 전 조회 1,305
14년 전 조회 1,217
14년 전 조회 1,101
14년 전 조회 987
14년 전 조회 1,448
14년 전 조회 1,847
14년 전 조회 1,256
14년 전 조회 1,060
14년 전 조회 3,600
14년 전 조회 1,145
14년 전 조회 1,010
14년 전 조회 2,365
14년 전 조회 1,777
14년 전 조회 2,296
14년 전 조회 856
14년 전 조회 1,104
14년 전 조회 939
14년 전 조회 799
14년 전 조회 891
14년 전 조회 1,007
14년 전 조회 1,763
14년 전 조회 1,117
14년 전 조회 1,206
14년 전 조회 810
14년 전 조회 1,333
14년 전 조회 1,918
14년 전 조회 1,336
14년 전 조회 1,587
14년 전 조회 1,085
14년 전 조회 1,243
14년 전 조회 1,039
14년 전 조회 1,374
14년 전 조회 1,244
14년 전 조회 687
14년 전 조회 844
14년 전 조회 878
14년 전 조회 1,200
14년 전 조회 1,028
14년 전 조회 1,068
14년 전 조회 1,023
14년 전 조회 1,430
14년 전 조회 1,122
14년 전 조회 1,140
14년 전 조회 1,172
14년 전 조회 960
14년 전 조회 2,000
14년 전 조회 1,776
14년 전 조회 1,211
14년 전 조회 1,058
14년 전 조회 2,119
14년 전 조회 1,472
14년 전 조회 1,319
14년 전 조회 1,045
14년 전 조회 1,765
14년 전 조회 4,015
14년 전 조회 2,671
14년 전 조회 1,374
14년 전 조회 976
14년 전 조회 1,052
14년 전 조회 1,572
14년 전 조회 1,232
14년 전 조회 1,592
14년 전 조회 1,680
14년 전 조회 1,702
14년 전 조회 882
14년 전 조회 1,119