ホームページ >バックエンド開発 >PHPチュートリアル >初心者向けの PHP 面接の質問と回答 - 穴埋め質問とプログラミングの質問

初心者向けの PHP 面接の質問と回答 - 穴埋め質問とプログラミングの質問

WBOY
WBOYオリジナル
2016-07-25 08:59:181113ブラウズ
  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. }
复制代

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. (0, '第 1 レベルのカテゴリ'),
  10. (1, '第 2 レベルのカテゴリ'),
  11. (1, '第 2-レベル カテゴリ'),
  12. (1, '第 2 レベル カテゴリ'),
  13. (2, '第 3 レベル カテゴリ'),
  14. (2, '333332'),
  15. (2, '234234'),
  16. (3 , 'aqqqqqd'),
  17. ( 4, 'Haha'),
  18. (5, '66333666');

  19. */

  20. //カテゴリ ID 変数 $category_id を取得し、カテゴリのすべてのサブカテゴリを返します

  21. //$default_category はデフォルトで選択されているカテゴリです
  22. function Get_Category($category_id = 0,$level = 0, $default_category = 0)
  23. {
  24. global $DB ;
  25. $sql = “SELECT * FROM category ORDER BY categoryID DESC”;
  26. $result = $DB->query( $sql );
  27. while ($rows = $DB->fetch_array($result))
  28. {
  29. $category_array[$rows[カテゴリ親ID] ][$rows[カテゴリID]] = array('id' => $rows[カテゴリID], '親' => $rows[カテゴリ親ID], '名前' => $rows

  30. < p>[カテゴリ名]);
  31. }
  32. if (!isset($category_array[$category_id]))
  33. {
  34. return "";
  35. }
  36. foreach($category_array[$category_id] AS $key => $category)
  37. {
  38. if ($category['id'] == $default_category)
  39. {
  40. echo "
  41. }else
  42. {
  43. echo "< ;option value=”.$category['id'].””;
  44. }

  45. if ($level > 0)

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

  55. /*

  56. 関数によって返される配列形式は次のとおりです:
  57. Array
  58. (
  59. [1] => Array ( [id] => 1 [name] => レベル 1 カテゴリ [レベル] => 0 [ParentID] = > 0 )
  60. [4] => 配列 ( [id] => 4 [名前] => 二次カテゴリ [レベル] => 1 [親 ID] => 1 )
  61. [9] => Array ( [id] => 9 [ name] => haha​​ [level] => 2 [ParentID] => 4 )
  62. [3] => Array ( [id] => 3 [名前] => 二次カテゴリ [レベル] = > 1 [親 ID] => 1 )
  63. [8] => 配列 ( [id] => 8 [名前] => ; 2 [親ID] => 3 )
  64. [2] => 配列 ( [id] => 2 [名前] => 二次カテゴリ [レベル] => 1 [親ID] => 1 ) [7] => 配列 ( [id ] => 7 [名前] => 234234 [レベル] => 2 [親 ID] => 2 )
  65. [6] => 配列 ( [id] = > 6 [名前] => 333332 [レベル] => 2 [親ID] => 5 [名前] =>カテゴリ [レベル] => 2 [親 ID] => 2 )
  66. [10] => 配列 ( [ID] => 10 [名前] => 66333666 [レベル] => 3 [親 ID] = > 5 )
  67. )
  68. */
  69. / /カテゴリーIDを指定して配列
  70. 関数を返す category_array($category_id = 0,$level=0)
  71. {
  72. global $DB;
  73. $sql = “SELECT * FROM category ORDER BY categoryID DESC”;
  74. $result = $DB ->query($sql);
  75. while ($rows = $DB->fetch_array($result))
  76. {
  77. $category_array[$rows[' categoryParentID']][$rows['categoryID']] = $rows;
  78. }

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

  80. {
  81. if ($key = = $category_id)
  82. {
  83. foreach ($val AS $k => $v)
  84. {
  85. $options[$k] =
  86. array(
  87. 'id' => $v['categoryID'], 'name ' => $v['カテゴリ名'], 'レベル ' => $レベル, '親ID'=>$v['カテゴリ親ID']
  88. );

  89. $children = category_array($k, $level+1);

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

  91. {
  92. $options = $options + $children;
  93. }
  94. }
  95. }
  96. }
  97. unset($category_array[$category_id]);
  98. return $options;
  99. }
  100. ?>

  101. コードをコピー

  1. class cate
  2. {

  3. 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, 'parent' => 0, 'name' => '2222'),
  10. '4' => array('id' => 4, 'parent' => 0, 'name' => '4444')
  11. ),
  12. '1' => array(
  13. '3' => array(' id' => 3, '親' => 1, '名前' => '333333'),
  14. '5' => 5, '親' => 1 , 'name' => '555555')
  15. ),

  16. '3' => array('id' => '親' => 3, '名前' => '66666'),

  17. '7' => 配列('親' => 3, '名前' => ' 77777′)
  18. ),
  19. '4′ => array(
  20. '8′ => array('id' => 8, 'parent' => 4, 'name' => '8888') ,
  21. '9′ => array('id' => 9, 'parent' => 4, 'name' => '9999′)
  22. )
  23. );

  24. {
  25. return “”;
  26. }

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

  28. {
  29. if ($cate['id'] == $default_category)
  30. {
  31. $txt = “<オプション選択値=”.$cate['id'].”";
  32. }else{
  33. $txt = “
  34. }

  35. if ($level > 0)

  36. {
  37. $txt1 = “ >」 。 str_repeat( “-”, $level ) 。 「」。 $cate['名前'] 。 “n”;
  38. }else{
  39. $txt1 = “>” 。 $cate['名前'] 。 “n”;
  40. }
  41. $val = $txt.$txt1;
  42. echo $val;
  43. self::Get_Category($key, $level + 1, $default_category);
  44. }
  45. }

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

复制代コード

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。