• php用压栈的方式,循环遍历无限级别的数组(非递归方法)


    php用压栈的方式,循环遍历无限级别的数组(非递归方法)

    好久不写非递归遍历无限级分类。。。
    瞎猫碰到死老鼠,发刚才写的1段代码,压栈的方式遍历php无限分类的数组。。。

    php压栈的方式遍历无限级别数组的代码,截图如下:

    $nodes 样例数据 截图如下:

    运行结果:
    -----------------

    content: 标题1
    content: sdffwewewere
    content: 222222
    content: uuuuuuuuuu
    content: aaaaaaaa
    content: uuu 00000000
    content: uuu 000 111111111

    php压栈的方式遍历无限级别数组,全部代码的code代码文本如下:

     1 <?php 
     2 
     3 // 这是无限级的多维数组
     4 $nodes = array( 
     5     0=>array( 
     6         'content' => '标题1',
     7         'sub' => array( 
     8             0=>array( 
     9                 'content' => 'sdffwewewere' ,
    10             ) ,  
    11             1=>array( 
    12                 'content' => '222222' ,
    13             ) ,  
    14             2=>array( 
    15                 'content' => 'uuuuuuuuuu' ,
    16                 'sub' => array( 
    17                     0=>array( 
    18                         'content' => 'uuu 00000000' ,
    19                         'sub' => array( 
    20                             0=>array( 
    21                                 'content' => 'uuu 000 111111111' ,
    22                             ) ,  
    23                         ) ,
    24                     ) ,  
    25                 ) ,
    26             ) ,  
    27             3=>array( 
    28                 'content' => 'aaaaaaaa' ,
    29             ) ,  
    30         ) ,
    31     ) ,
    32 );
    33 
    34 // 用压栈的方式遍历数组,非递归方法 
    35 foreach ( $nodes as $k => $v ) {
    36     
    37     // 给栈赋予第1条数据
    38     $list[0] = $v;
    39     
    40     // 只要栈$list 不为空,就一直遍历
    41     while ( !empty( $list ) ) {
    42         
    43         // 取出并删除栈顶部的1条数据
    44         $one = array_shift( $list );
    45         
    46         // 打印取出的那条数据
    47         echo ' content: ' , $one['content'] , ' <br>';
    48 
    49         // 如果取出的那条数据有子节点, 把子节点合并、存入到栈list中去
    50         if ( isset( $one['sub'] ) ) {
    51             $list = array_merge( $list , $one['sub'] );    
    52         }
    53     } 
    54 }
    查看折叠
  • 相关阅读:
    .37-浅析webpack源码之事件流make(4)
    .36-浅析webpack源码之Parser类
    .35-浅析webpack源码之babel-loader入口文件路径读取
    .34-浅析webpack源码之事件流make(3)
    浅探element-ui2组件源码之upload
    .33-浅析webpack源码之doResolve事件流(5)
    .32-浅析webpack源码之doResolve事件流(4)
    .31-浅析webpack源码之doResolve事件流(3)
    .30-浅析webpack源码之doResolve事件流(2)
    windows server 2016 支持多用户远程登录
  • 原文地址:https://www.cnblogs.com/wangqishu/p/3461924.html
Copyright © 2020-2023  润新知