一个无限循环数组的例子(递归)

发布时间:2019-08-06编辑:脚本学堂
一个无限循环数组的例子,使用了递归,有需要的朋友可以参考下。

一个无限循环数组的例子,使用了递归,有需要的朋友可以参考下。
 

复制代码 代码如下:

<?php
/**
* Author : GuoWangYunYan
* QQ : 279861795
* Date : 2011-6-23
* link:www.jbuxe.com
*/
//设置编码
header('Content-type: text/html; charset=utf-8');
//比较变态的用了个五维数组
$a = array(
  'AAAAAA'  =>  array(
        'aaaaaa' => array(
                 '111111',
                 '222222',
                 '333333'
        ),
        'bbbbbb'  => array(
                  '111111',
                 '222222',
                 '333333'
        ),
        'cccccc'  => array(
                  '111111',
                  '222222',
                  '333333'
        ),                    
  ),
  'BBBBBB'  =>   array(
        'aaaaaa' => array(
                  '111111',
                  '222222',
                  '333333'
        ),
        'bbbbbb'=> array(
                  '111111',
                  '222222',
                  '333333'
        ),
        'cccccc'=> array(
                  '111111',
                  '222222',
                  '333333'
        ),
  ),
  'CCCCCC'  => array(
        'aaaaaa'=> array(
                  '111111',
                  '222222',
                  '333333'
        ),
        'bbbbbb'=> array(
                  '111111',
                  '222222',
                  '333333'
        ),
        'cccccc' => array(
                  '111111'=>array('44','55','66'),
                  '222222'=>array('44','55','66'),
                  '333333'=>array(
                          '44'=>array('77','88','99'),
                          '55'=>array('77','88','99'),
                          '66'=>array('77','88','99'),
      ),
    ),
  ),
);

//执行函数
 fun($a);
   
  //无限分类  递归大法开始
  function fun ($_info,$deep=0){
      //判断是不是数组
      if (is_array($_info)){
          //foreach 循环
           foreach ($_info as $key=>$val){
               //第一次前面-没有 以后每次循环增加4个  顺便输出键名
              echo   str_repeat(' - ',$deep).$key.'<br />';
              //递归  输出键值  顺便每次前面增加4个----
              fun($val,$deep+4);
           }
      } else {
           //如果键值不是数组 那么 直接返回
          echo str_repeat('-', $deep) . "$val<br />";
          }
  }
?>

递归解释:
递归作为一种算法,在程序设计语言中广泛应用,是指函数/过程/子程序在运行过程中直接或间接调用自身而产生的重入现象。
递归是计算机科学的一个重要概念,递归的方法是程序设计中有效的方法,采用递归编写程序能使程序变得简洁和清晰。

若不采用递归,执行效率相对较低。