无限分类存储及PHP高效展现数组处理(一)
2012-12-11 16:09
246 查看
最近正好遇到一个项目, 是有一个无限分类的内容, 需要处理成树结构. 之前一直使用的是递归的方式去处理的. 但是这种方式执行效率实在太低. 所以今天换了一个方式去处理.
下面贴上代码:
表结构:
到这里, 我想大家也看明白了, 这里没有使用PID的方式去处理的. PS. 上面的表结构我是在网上找的. 但是我的主要要表述的是我的处理方式;
先上代码:
最后的$tree就是我们所需要的数组. 这边的关键是字符串的拼接和 eval函数的使用.
下面贴上代码:
表结构:
到这里, 我想大家也看明白了, 这里没有使用PID的方式去处理的. PS. 上面的表结构我是在网上找的. 但是我的主要要表述的是我的处理方式;
先上代码:
<?php mysql_connect("10.1.59.222:3306", 'root', '123456'); mysql_select_db('demo'); mysql_query("SET NAMES UTF8"); $sql = "select id, catpath as fullpath, name from category order by fullpath"; $result = mysql_query($sql); $rows = array(); while (false !== ($row = mysql_fetch_array($result, MYSQL_ASSOC))) { $row['name'] = iconv('utf-8', 'gbk', $row['name']); $rows[] = $row; } $tree = array(); if (is_array($rows)) { foreach ($rows as $k => $v) { $fullpath = explode('-',$v['fullpath']); $count = count($fullpath); $path = "tree"; for ($i = 0; $i < $count; $i++) { if ($i >= 1) { $path .= "[" . $fullpath[$i] . "]['CHILDREN']"; } } $arrStr = 'array('; foreach ($v as $key => $val) { $arrStr .= '"' .$key . '" => "' . $val . '",'; } $arrStr .= ')'; //echo ('$' . $path . '[' . $v['id'] . ']=' . $arrStr . ';' . '<br/>'); eval('$' . $path . '[' . $v['id'] . ']=' . $arrStr . ';'); } file_put_contents('1.txt', print_r($tree, true)); } //$tree['CHILDREN'][1] = array(['PROJECT_ID'] => 1, ['PID'] => 2, ....); ?>
最后的$tree就是我们所需要的数组. 这边的关键是字符串的拼接和 eval函数的使用.
相关文章推荐
- 无限分类存储及PHP高效展现数组处理(二)
- PHP递归实现无限分类数组处理
- PHP-mySql实现无限分类(递归、数组)
- php 递归 实现无限分类 格式化数组
- PHP数组无限分级数据的层级化处理代码
- php 递归 实现无限分类 格式化数组
- 利用php递归实现无限分类 格式化数组的详解
- PHP递归遍历多维数组实现无限分类的方法
- php用数组返回无限分类的列表数据的代码
- PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
- php用数组返回无限分类的列表数据的代码
- PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
- 递归处理无限级分类为树形数组
- PHP递归遍历多维数组实现无限分类的方法
- PHP和MySQL处理树状、分级、无限分类、分层数据的方法
- PHP数组无限分级数据的层级化处理代码
- PHP和MySQL处理树状、分级、无限分类、分层数据的方法
- PHP从零单排(五)PHP对数组的处理 分类: PHP 2014-04-22 09:35 151人阅读 评论(0) 收藏
- 数组模拟无限级分类及可伸缩——php&&js(jQuery)