php用压栈的方式,循环遍历无限级别的数组(非递归方法)
2013-12-06 18:03
736 查看
php用压栈的方式,循环遍历无限级别的数组(非递归方法)
好久不写非递归遍历无限级分类。。。
瞎猫碰到死老鼠,发刚才写的1段代码,压栈的方式遍历php无限分类的数组。。。
php压栈的方式遍历无限级别数组的代码,截图如下:
查看折叠
好久不写非递归遍历无限级分类。。。
瞎猫碰到死老鼠,发刚才写的1段代码,压栈的方式遍历php无限分类的数组。。。
php压栈的方式遍历无限级别数组的代码,截图如下:
<?php // 这是无限级的多维数组 $nodes = array( 0=>array( 'content' => '标题1', 'sub' => array( 0=>array( 'content' => 'sdffwewewere' , ) , 1=>array( 'content' => '222222' , ) , 2=>array( 'content' => 'uuuuuuuuuu' , 'sub' => array( 0=>array( 'content' => 'uuu 00000000' , 'sub' => array( 0=>array( 'content' => 'uuu 000 111111111' , ) , ) , ) , ) , ) , 3=>array( 'content' => 'aaaaaaaa' , ) , ) , ) , ); // 用压栈的方式遍历数组,非递归方法 foreach ( $nodes as $k => $v ) { // 给栈赋予第1条数据 $list[0] = $v; // 只要栈$list 不为空,就一直遍历 while ( !empty( $list ) ) { // 取出并删除栈顶部的1条数据 $one = array_shift( $list ); // 打印取出的那条数据 echo ' content: ' , $one['content'] , ' <br>'; // 如果取出的那条数据有子节点, 把子节点合并、存入到栈list中去 if ( isset( $one['sub'] ) ) { $list = array_merge( $list , $one['sub'] ); } } }
查看折叠
相关文章推荐
- PHP递归遍历多维数组实现无限分类的方法
- PHP递归遍历多维数组实现无限分类的方法
- PHP递归方式把一个数组里面的null转换为空字符串”的方法
- PHP循环遍历数组的3种方法list()、each()和while总结
- PHP循环遍历数组的3种方法list()、each()和while总结
- PHP循环遍历数组的3种方法list()、each()和while总结
- laravel查询得到的数据(为对象object)无法进行数组循环遍历,而且不能用数组方式访问和查看的原因以及解决方法
- php递归遍历多维数组的方法
- PHP循环遍历数组的3种方法list()、each()和while总结
- PHP递归遍历多维数组的两种方法
- PHP循环遍历数组的3种方法list()、each()和while总结
- 递归遍历多维数组(树数据结构)的超级简单方式,并且可以递归超过200层,摘自<<PHP精粹:编写高效PHP代码>>
- php递归遍历删除文件的方法
- js数组循环遍历数组内所有元素的方法
- [php] PHP中遍历关联数组的三种方法
- php实现递归的三种方式: 遍历文件夹实例
- PHP中遍历关联数组的方法
- PHP使用递归方式列出当前目录下所有文件的方法
- php数组的循环遍历
- [PHP] 原生PHP使用递归方式实现数组转换成XML的功能之思考