ホームページ  >  記事  >  バックエンド開発  >  無限ループ配列(再帰)の例

無限ループ配列(再帰)の例

WBOY
WBOYオリジナル
2016-07-25 09:04:481614ブラウズ
  1. /**

  2. * 著者 : GuoWangYunYan
  3. * QQ : 279861795
  4. * 日付 : 2011-6-23
  5. * リンク:www.jbuxe.com
  6. */
  7. //エンコーディングを設定
  8. header('Content-type: text/html; charset=utf-8');
  9. / /奇妙な方法で、5次元配列を使用しました
  10. $a = array(
  11. 'AAAAAA' => array(
  12. 'aaaaaa' => array(
  13. '111111',
  14. '222222',
  15. '333333 '
  16. ) ,
  17. 'bbbbbb' => 配列(
  18. '111111',
  19. '222222',
  20. '333333'
  21. ),
  22. 'cccccc' => 配列(
  23. '111111',
  24. '222222',
  25. '333333'
  26. ),
  27. ),
  28. 'BBBBBB' => array(
  29. 'aaaaaa' => array(
  30. '111111',
  31. '222222',
  32. '333333'
  33. ),
  34. 'bbbbbb' => ; 配列(
  35. '111111',
  36. '222222',
  37. '333333'
  38. ),
  39. 'cccccc'=> 配列(
  40. '111111',
  41. '222222',
  42. '333333'
  43. ), )、
  44. 'CCCCCC' => 配列(
  45. 'aaaaaa'=> 配列(
  46. '111111',
  47. '222222',
  48. '333333'
  49. ),
  50. 'bbbbbb' => 配列(
  51. '111111',
  52. ' 222222',
  53. '333333'
  54. ),
  55. 'cccccc' => array(
  56. '111111'=>array('44','55','66'),
  57. '222222'=>array( '44' ,'55','66'),
  58. '333333'=>array(
  59. '44'=>array('77','88','99'),
  60. '55'=> ;array( '77','88','99'),
  61. '66'=>array('77','88','99'),
  62. ),
  63. ),
  64. ),
  65. );
  66. //関数実行

  67. fun($a);
  68. //無限分類再帰法開始
  69. function fun($_info,$deep=0){
  70. //判定は配列です
  71. if ( is_array($_info)){
  72. //foreach ループ
  73. foreach ($_info as $key=>$val){
  74. //以前の初回 - ループが 4 を追加するたびにそれ以上は不要キー名の出力方法
  75. echo str_repeat (' - ',$deep).$key.'
    ';
  76. //キーの値を再帰的に出力し、毎回先頭に4を追加します----
  77. fun($val,$deep+4) ;
  78. }
  79. } else {
  80. //キー値が配列でない場合は、直接戻ります
  81. echo str_repeat('-', $deep) "$val
    ";
  82. }
  83. }
  84. ?>< /p>
コードをコピー
再帰的な説明: 再帰はアルゴリズムとしてプログラミング言語で広く使用されており、関数/プロセス/サブプログラムが動作中に直接または間接的にそれ自体を呼び出すことによって引き起こされる再入現象を指します。 再帰は、コンピュータ サイエンスにおける重要な概念です。再帰を使用してプログラムを作成すると、プログラムが簡潔かつ明確になります。

再帰を使用しない場合、実行効率は比較的低くなります。


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