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

2019-12-18 09:35栏目:编程学习

本文实例叙述了php对事关数组循环遍历的兑现情势。分享给大家供大家参考。具体分析如下:

php用压栈的章程,循环遍历Infiniti级其余数组(非递归方法卡塔尔(英语:State of Qatar)

$age = array("zhangshan"=>14,"lisi"=>15,"sharejs"=>16);

好久不写非递归遍历Infiniti级分类。。。
瞎猫蒙受死老鼠,发刚才写的1段代码,压栈的点子遍历phpInfiniti分类的数组。。。

如此的数组能够通过foreach的章程开展遍历,下边是事必躬亲的代码:

php压栈的情势遍历无限等级数组的代码,截图如下:

$age = array("zhangshan"=>14,"lisi"=>15,"sharejs"=>16);foreach($age as $name=>$value){ echo $name . "=" . $value; echo "n";}

图片 1

可望本文所述对我们的php程序设计有所帮助。

$nodes 样例数据 截图如下:

图片 2

运转结果:

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

 

 

php压栈的方法遍历Infiniti级别数组,意气风发体代码的code代码文本如下:

图片 3图片 4

 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 }

查看折叠

 

 

 

 

 

版权声明:本文由威尼斯人app发布于编程学习,转载请注明出处:php用压栈的方式,循环遍历无限级别的数组(非递归