数据算法
来源:互联网 发布:范剑青 知乎 编辑:程序博客网 时间:2024/05/16 12:05
无限分类生成树形结构
<?php//递归实现function genTree($items, $pid){ $tree = []; foreach($items as $item){ if($item['pid'] == $pid){ $item['son'] = genTree($items, $item['id']); if(!$item['son']){ unset($item['son']); } $tree[] = $item; } } return $tree;}//非递归实现,循环中用引用变量function genTree5($items){ foreach($items as $item){ $items[$item['pid']]['son'][$item['id']] = &$items[$item['id']]; } return $items[0]['son'] ? $items[0]['son'] : [];}function genTree9($items){ $tree = []; foreach($items as &$item){ if(isset($items[$item['pid']])) $items[$item['pid']]['son'][] = &$items[$item['id']]; else $tree[] = &$items[$item['id']]; } return $tree;}$items = array( 1 => array('id' => 1, 'pid' => 0, 'name' => '江西省'), 2 => array('id' => 2, 'pid' => 0, 'name' => '黑龙江省'), 3 => array('id' => 3, 'pid' => 1, 'name' => '南昌市'), 4 => array('id' => 4, 'pid' => 2, 'name' => '哈尔滨市'), 5 => array('id' => 5, 'pid' => 2, 'name' => '鸡西市'), 6 => array('id' => 6, 'pid' => 4, 'name' => '香坊区'), 7 => array('id' => 7, 'pid' => 4, 'name' => '南岗区'), 8 => array('id' => 8, 'pid' => 6, 'name' => '和兴路'), 9 => array('id' => 9, 'pid' => 7, 'name' => '西大直街'), 10 => array('id' => 10, 'pid' => 8, 'name' => '东北林业大学'), 11 => array('id' => 11, 'pid' => 9, 'name' => '哈尔滨工业大学'), 12 => array('id' => 12, 'pid' => 8, 'name' => '哈尔滨师范大学'), 13 => array('id' => 13, 'pid' => 1, 'name' => '赣州市'), 14 => array('id' => 14, 'pid' => 13, 'name' => '赣县'), 15 => array('id' => 15, 'pid' => 13, 'name' => '于都县'), 16 => array('id' => 16, 'pid' => 14, 'name' => '茅店镇'), 17 => array('id' => 17, 'pid' => 14, 'name' => '大田乡'), 18 => array('id' => 18, 'pid' => 16, 'name' => '义源村'), 19 => array('id' => 19, 'pid' => 16, 'name' => '上坝村'),);echo "<pre>";print_r(genTree($items,0));?>
遍历下目录文件
<?php//递归方法遍历function scanFiles1($path){ $files = []; if($handle = opendir($path)){ while($afile = readdir($handle)){ if($afile == '.' || $afile == '..') continue; $apath = $path . DIRECTORY_SEPARATOR . $afile; if(is_dir($apath)){ $files[$afile] = call_user_func([$this, 'scanFiles1'], $apath); }else{ $files[] = $afile; } } } return $files; } function scanFiles2($path){ $files = []; if($list = scandir($path)){ foreach($list as $afile){ if($afile == '.' || $afile == '..') continue; $apath = $path . DIRECTORY_SEPARATOR . $afile; if(is_dir($apath)){ $files[$afile] = call_user_func([$this, 'scanFiles2'], $apath); }else{ $files[] = $afile; } } } return $files; }
获取两个数组中的相同元素(值与类型都相同)
function getSameElement($arr1, $arr2){ $arr = []; foreach($arr1 as $v){ if(in_array($v, $arr2, true) && !in_array($v, $arr, true)){ $arr[] = $v; } } return $arr;}
0 0
- 数据算法
- 【数据】EAGLE算法数据
- 数据算法——大数据算法
- 数据挖掘算法 apriori算法
- 数据挖掘算法-Apriori算法
- 大数据, 海量数据算法
- 大数据, 海量数据算法
- 大数据, 海量数据算法
- 数据挖掘经典算法
- Google地图数据算法
- 数据加密、摘要算法
- 数据挖掘算法分析
- 数据挖掘算法
- 数据搜索算法
- 神经网络算法--数据挖掘
- 数据同步算法研究
- 数据同步算法研究
- 数据同步算法研究
- Sass的继承@extend
- NB-IoT终端开发流程
- ps梦幻效果技巧
- 控制反转和依赖注入
- Kurento模块开发指南之三:开发示例 Chroma Filter
- 数据算法
- 互联网新格局-敏捷转型三板斧大型讲座
- linux驱动编程——signal_pending
- ListView左划删除
- 安装supervisor及配置守护进程
- 108. Convert Sorted Array to Binary Search Tree
- iOS 保持界面流畅的技巧
- canvas-渐变色
- Kurento模块开发指南之四:开发示例 Crowd Detector Filter