중급 테스트 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,621
14년 전 조회 973
14년 전 조회 2,142
14년 전 조회 1,045
14년 전 조회 1,456
14년 전 조회 983
14년 전 조회 1,475
14년 전 조회 1,729
14년 전 조회 1,249
14년 전 조회 1,040
14년 전 조회 1,255
14년 전 조회 1,141
14년 전 조회 2,182
14년 전 조회 1,359
14년 전 조회 1,057
14년 전 조회 982
14년 전 조회 1,575
14년 전 조회 2,858
14년 전 조회 979
14년 전 조회 2,788
14년 전 조회 1,960
14년 전 조회 1,117
14년 전 조회 1,340
14년 전 조회 1,238
14년 전 조회 1,232
14년 전 조회 778
14년 전 조회 954
14년 전 조회 1,067
14년 전 조회 1,441
14년 전 조회 1,113
14년 전 조회 1,502
14년 전 조회 1,244
14년 전 조회 1,422
14년 전 조회 1,026
14년 전 조회 1,256
14년 전 조회 1,187
14년 전 조회 1,060
14년 전 조회 953
14년 전 조회 1,417
14년 전 조회 1,817
14년 전 조회 1,229
14년 전 조회 1,026
14년 전 조회 3,556
14년 전 조회 1,118
14년 전 조회 967
14년 전 조회 2,337
14년 전 조회 1,742
14년 전 조회 2,260
14년 전 조회 821
14년 전 조회 1,073
14년 전 조회 910
14년 전 조회 758
14년 전 조회 856
14년 전 조회 975
14년 전 조회 1,728
14년 전 조회 1,073
14년 전 조회 1,182
14년 전 조회 779
14년 전 조회 1,298
14년 전 조회 1,889
14년 전 조회 1,310
14년 전 조회 1,553
14년 전 조회 1,055
14년 전 조회 1,207
14년 전 조회 1,012
14년 전 조회 1,330
14년 전 조회 1,219
14년 전 조회 657
14년 전 조회 818
14년 전 조회 849
14년 전 조회 1,169
14년 전 조회 1,005
14년 전 조회 1,020
14년 전 조회 1,000
14년 전 조회 1,404
14년 전 조회 1,092
14년 전 조회 1,116
14년 전 조회 1,148
14년 전 조회 922
14년 전 조회 1,971
14년 전 조회 1,733
14년 전 조회 1,175
14년 전 조회 1,030
14년 전 조회 2,086
14년 전 조회 1,443
14년 전 조회 1,292
14년 전 조회 1,017
14년 전 조회 1,736
14년 전 조회 3,982
14년 전 조회 2,642
14년 전 조회 1,334
14년 전 조회 951
14년 전 조회 1,014
14년 전 조회 1,529
14년 전 조회 1,208
14년 전 조회 1,569
14년 전 조회 1,656
14년 전 조회 1,665
14년 전 조회 847
14년 전 조회 1,092