【Code】Js-mind插件中会使用到的一个递归拼装数据格式的函数
来源:互联网 发布:最新版软件开发合同 编辑:程序博客网 时间:2024/06/06 02:42
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 ( ) ))
0 0
- 【Code】Js-mind插件中会使用到的一个递归拼装数据格式的函数
- js中递归函数的使用
- js中匿名函数的递归
- JS拼装html字符串的最快方法
- 一个简单的SQL语句拼装代码
- 一个简单的SQL语句拼装代码
- json数据结构拼装的一个例子
- Go语言中字符串的拼装方法
- Android Studio中Android Parcelable code generator插件的使用
- Java中Json数据格式的使用
- trunc()函数的存在,语句将不会使用到索引
- 简单说明什么是递归,什么情况下会使用递归,并写一个简单的递归程序。
- js中拼装Html时 在onclick 中传值出现问题解决办法,及替换全部的方法
- js中会使用到的一种表单遍历验证的方法,访问当前节点的兄弟节点
- 递归函数的使用
- 百度地图使用到的js函数
- 早些时候设计的table拼装插件(初稿)
- 一个可以直接拖拽文件到Eclipse中使用Eclipse打开的插件
- linux查看文件最近修改时间
- SpringMVC表单标签简介
- EEPROM与Flash
- css3
- [笔记]面向对象的程序设计
- 【Code】Js-mind插件中会使用到的一个递归拼装数据格式的函数
- 单例模式讲解
- 解决ios证书无效问题
- Android消息机制------Handler机制的原理(超详细)
- lesson 2 Supporting Different Devices
- 【转】分布式异步任务队列 Celery + rabbitmq (or redis )
- HTML使用列表
- Js中的call和apply
- java线程基础