【Code】Js-mind插件中会使用到的一个递归拼装数据格式的函数
2016-03-29 11:33
585 查看
js-mind插件使用效果
后续再发布js-mind插件的使用文章,这里只先提供一个会用到的函数。js-mind插件的文字框在点击后可以跳转链接,这个函数就是为了拼装链接的。函数
<?php /** * 递归填充Jsmind数据格式 * @param array $arrTemp 需要处理的数组 * @param array $arrOption 配置参数 * @param string $arrOption['key'] 需要处理数据的字段 * @param string $arrOption['before'] 字段值之前的的填充数据 * @param string $arrOption['middle'] 为锚点添加的参数 * @param string $arrOption['after'] 字段值之后的填充数据 * @return array * / public function recursionFill($arrTemp,$arrOption) { $arrRes = array(); foreach($arrTemp as $k=>$v) { $strPar = $arrOption['before'].$v[$arrOption['key']]; if(isset($arrOption['middle'])) { $strPar .= $arrOption['middle'].$v[$arrOption['key']]; } $strPar .= $arrOption['after']; $arrTemp[$k][$arrOption['key']] = $strPar; if(!empty($arrTemp[$k]['children'])) { $arrTemp[$k]['children'] = recursionFill($arrTemp[$k]['children'],$arrOption); } $arrRes = $arrTemp; } return $arrRes; } ?>
实例
调用前Array ( [0] => Array ( [id] => 1000100100 [topic] => C [fatherid] => 0 [direction] => right [children] => Array ( [0] => Array ( [id] => 1000101100 [topic] => 第一章 [fatherid] => 1000100100 [direction] => right [children] => Array ( [0] => Array ( [id] => 1000101101 [topic] => 第一节 [fatherid] => 1000101100 [direction] => right [children] => Array ( ) ) ) ) ) ) [1] => Array ( [id] => 1002100100 [topic] => C++ [fatherid] => 0 [direction] => right [children] => Array ( ) ) [2] => Array ( [id] => 1003100100 [topic] => Objective-C [fatherid] => 0 [direction] => right [children] => Array ( ) ) [3] => Array ( [id] => 1004100100 [topic] => C# [fatherid] => 0 [direction] => right [children] => Array ( ) ) [4] => Array ( [id] => 1005100100 [topic] => PHP [fatherid] => 0 [direction] => right [children] => Array ( ) ) )
调用
$arrResult = $this -> recursionFill($arrTree, ['key'=>'id', 'before'=>'/knowledge/index?kid=', 'middle'=>'#', 'after'=>'|_blank'] );
调用后
Array ( [0] => Array ( [id] => /knowledge/index?kid=1000100100#1000100100|_blank [topic] => C [fatherid] => 0 [direction] => right [children] => Array ( [0] => Array ( [id] => /knowledge/index?kid=1000101100#1000101100|_blank [topic] => 第一章 [fatherid] => 1000100100 [direction] => right [children] => Array ( [0] => Array ( [id] => /knowledge/index?kid=1000101101#1000101101|_blank [topic] => 第一节 [fatherid] => 1000101100 [direction] => right [children] => Array ( ) ) ) ) ) ) [1] => Array ( [id] => /knowledge/index?kid=1002100100#1002100100|_blank [topic] => C++ [fatherid] => 0 [direction] => right [children] => Array ( ) ) [2] => Array ( [id] => /knowledge/index?kid=1003100100#1003100100|_blank [topic] => Objective-C [fatherid] => 0 [direction] => right [children] => Array ( ) ) [3] => Array ( [id] => /knowledge/index?kid=1004100100#1004100100|_blank [topic] => C# [fatherid] => 0 [direction] => right [children] => Array ( ) ) [4] => Array ( [id] => /knowledge/index?kid=1005100100#1005100100|_blank [topic] => PHP [fatherid] => 0 [direction] => right [children] => Array ( ) ) )
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- java自动生成验证码插件-kaptcha
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- jQuery插件实现文字无缝向上滚动效果代码
- jQuery菜单插件用法实例
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法