>백엔드 개발 >PHP 튜토리얼 >초보자를 위한 PHP 인터뷰 질문 및 답변 - 빈칸 채우기 질문 및 프로그래밍 질문

초보자를 위한 PHP 인터뷰 질문 및 답변 - 빈칸 채우기 질문 및 프로그래밍 질문

WBOY
WBOY원래의
2016-07-25 08:59:181109검색
  1. function my_scandir($dir)
  2. {
  3. $files = array();
  4. if ( $handle = opendir($dir) ) {
  5. while ( ($file = readdir($handle)) !== false ) {
  6. if ( $file != “..” && $file != “.” ) {
  7. if ( is_dir ($dir . “/” . $file) ) {
  8. $files[$file] = scandir($dir . “/” . $file);
  9. }else {
  10. $files[] = $file;
  11. }
  12. }
  13. }
  14. closedir($handle);
  15. return $files;
  16. }
  17. }
复system代码

14. 포럼에서 무한 분류의 구현 원리를 간략하게 설명하세요. 답변:

  1. /*

  2. 데이터 테이블 구조는 다음과 같습니다.
  3. CREATE TABLE `category` (
  4. `categoryID` smallint(5) unsigned NOT NULL auto_increment,
  5. `categoryParentID` smallint(5) unsigned NOT NULL 기본값 '0′,
  6. `categoryName` varchar(50) NOT NULL 기본값 ”,
  7. PRIMARY KEY (`categoryID`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=gbk;

  9. INSERT INTO `category` ( `categoryParentID`, `categoryName`) VALUES

  10. (0, '1차 카테고리'),
  11. (1, '2차 카테고리'),
  12. (1, '2차 카테고리'),
  13. (1, ' 2차 분류'),
  14. (2, '3차 분류'),
  15. (2, '333332′),
  16. (2, '234234′),
  17. (3, ' aqqqqqd'),
  18. ( 4, '하하'),
  19. (5, '66333666′);

  20. */

  21. < p>//분류 ID 변수 $category_id를 지정한 다음 카테고리의 모든 하위 카테고리를 반환합니다
  22. //$default_category는 기본적으로 선택된 카테고리입니다
  23. function Get_Category($category_id = 0, $level = 0, $default_category = 0)
  24. {
  25. 전역 $DB;
  26. $sql = “SELECT * FROM 카테고리 ORDER BY 카테고리 ID DESC”;
  27. $result = $DB->query( $sql );
  28. while ($rows = $DB ->fetch_array($result))
  29. {
  30. $category_array[$rows[categoryParentID]][$rows[categoryID]] = array('id' => $ 행[categoryID], '부모' => $rows[categoryParentID], 'name' => $rows

  31. [categoryName]);

  32. }
  33. if ( !isset($category_array[$category_id ]))
  34. {
  35. return “”;
  36. }
  37. foreach($category_array[$category_id] AS $key => $category)
  38. {
  39. if ($category[ 'id'] == $default_category)
  40. {
  41. echo "
  42. }else
  43. {
  44. echo "
  45. }

  46. if ($level > 0 )

  47. {
  48. echo “>” . str_repeat( ” “, $level ) . ” . $category['name'] .
  49. }
  50. else
  51. echo “>” . $category['name'] . "n";
  52. }
  53. Get_Category($key, $level 1, $default_category);
  54. }
  55. unset( $category_array[$category_id]);
  56. }

  57. /*

  58. 함수가 반환하는 배열 형식은 다음과 같습니다.
  59. Array
  60. (
  61. [1] => 배열( [ id] => 1 [name] => 첫 번째 수준 카테고리 [level] => 0 [ParentID] => 0 )
  62. [4] => ( [id] => 4 [name ] => 보조 카테고리 [level] => 1 [ParentID] => 1 )
  63. [9] => 배열 ( [id] => 9 [ 이름] => 하하 [레벨] => 2 [상위 ID] => 4 )
  64. [3] => 배열 ( [id] => 3 [이름] => 보조 카테고리 [레벨] => 1 [상위 ID] = > 1 )
  65. [8] => 배열( [id] => 8 [이름] => aqqqqqd [수준] => 2 [상위 ID] => 3 )
  66. [2] => 배열 ( [id] => 2 [name] => 보조 카테고리 [level] => 1 [ParentID] => 1 )
  67. [7] = > 배열( [id] => 7 [name] => 234234 [level] => 2 [ParentID] => 2 )
  68. [6] => 배열( [id] => 6 [이름] => 333332 [수준] => 2 [상위 ID] => 2 )
  69. [5] => 배열 ( [id] => 5 [이름] => 카테고리 [레벨] => 2 [상위 ID] => 2 )
  70. [10] => 배열 ( [id] => 10 [이름] => 66333666 [레벨] => 3 [상위 ID ] => 5 )
  71. )
  72. */
  73. //카테고리 ID를 지정한 후 배열을 반환합니다
  74. 함수 Category_array($category_id = 0,$level=0)
  75. {
  76. global $DB;
  77. $ sql = “SELECT * FROM Category ORDER BY CategoryID DESC”;
  78. $result = $DB->query($sql);
  79. while($rows = $ DB->fetch_array($result))
  80. {
  81. $category_array[$rows['categoryParentID']][$rows['categoryID']] = $rows;
  82. }

  83. foreach ($category_array AS $key=>$val)

  84. {
  85. if ($key == $category_id)
  86. {
  87. foreach($val AS $k => $v)
  88. {
  89. $options[$k] =
  90. array(
  91. 'id' => $v['categoryID'], 'name' => $v ['categoryName'], 'level' => ; $level, 'ParentID'=>$v['categoryParentID']
  92. );

  93. $children = Category_array( $k, $level 1);

  94. if (count($children) > 0)

  95. {
  96. $options = $options $children;
  97. }
  98. }
  99. }
  100. }
  101. unset($category_array[$category_id]);
  102. return $options;
  103. }
  104. ?>

코드 복사

  1. 클래스 케이트
  2. {

  3. < ;p>function Get_Category($category_id = 0,$level = 0, $default_category = 0)
  4. {
  5. echo $category_id;
  6. $arr = array(
  7. '0′ => array (
  8. '1′ => array('id' => 1, 'parent' => 0, 'name' => '1111′),
  9. '2′ => array( 'id' => 2, '부모' => '이름' => '2222′),
  10. '4′ => array('id' => 4, '부모' = > 0, '이름' => '4444′)
  11. ),
  12. '1′ => array(
  13. '3′ => array('id' => 3, ' parent' => 1, '이름' => '333333′),
  14. '5′ => array('id' => 5, '부모' => 1, '이름' => ; '555555′)
  15. ),

  16. '3′ => array(

  17. '6′ => array('id' => 6, ' parent' => 3, '이름' => '66666′),
  18. '7′ => array('id' => 7, '부모' => 3, '이름' => ; '77777′)
  19. ),
  20. '4′ => array(
  21. '8′ => array('id' => 8, 'parent' => 4, '이름 ' => '8888′),
  22. '9′ => array('id' => 9, '부모' => 4, '이름' => '9999')
  23. )
  24. );

  25. if (!isset($arr[$category_id]))

  26. {
  27. return “”;
  28. }

  29. foreach($arr[$category_id] AS $key => $cate)

  30. {
  31. if ($cate['id'] == $default_category)
  32. {
  33. $txt = “<옵션 선택 값=”.$cate['id'] .”";
  34. }else{
  35. $txt = “<옵션 값=”.$cate['id'].”";
  36. }

  37. 0)
  38. {
  39. $txt1 = “>” . str_repeat( “-”, $level ) . ” ” . $cate['이름'] . “n”;
  40. }else{
  41. $txt1 = “>” . $cate['이름'] . “n”;
  42. }
  43. $val = $txt.$txt1;
  44. echo $val;
  45. self::Get_Category($key, $level 1, $default_category);
  46. }
  47. }

  48. function getFlush($category_id = 0,$level = 0, $default_category = 0)

  49. {
  50. ob_start();
  51. self: :Get_Category($category_id ,$level, $default_category);
  52. $out = ob_get_contents();
  53. ob_end_clean();
  54. return $out;
  55. }
  56. }
  57. $id =$_GET['id'];
  58. echo “”;
  59. $c = new cate();
  60. //$c->Get_Category();
  61. $ttt= $c- >getFlush($id,'0′,'3′);
  62. echo $ttt;
  63. echo “”;
  64. ?>

제제대码


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.