没有合适的资源?快使用搜索试试~ 我知道了~
首页PHP数组无数据库无限分类实现与代码详解
本文档详细介绍了如何在PHP编程中利用数组实现无限分类功能,而无需依赖数据库和递归技术。首先,作者定义了一个名为`Cat`的类,这个类的主要作用是处理数据并进行分类。在类的构造函数中,通过包含一个外部文件(假设名为"data.php"),获取到存储分类数据的数组 `$class`。 在`CreateSortLevel`方法中,核心逻辑在于处理分类层级。当传入的父层级 `$fatherlevel` 为空时,会检查 `$this->data` 数组是否包含数据。如果数据存在,首先筛选出所有排序层级长度为3的元素,存储在 `$fast_level` 数组中,然后找到最大层级 `$max_fast_level`,并计算新的子层级 `$sub`。根据子层级的长度,使用 `switch` 语句生成相应的分类前缀。如果 `$this->data` 不是数组,说明没有父级数据,直接返回默认的 "001"。 接下来,遍历整个 `$this->data`,对匹配指定父层级 (`eregi` 函数用于正则匹配) 的元素,提取它们的排序层级放入 `$level` 数组。如果 `$level` 数组非空,同样计算新的子层级 `$sub`,并根据子层级长度调整前缀。最后,根据新生成的子层级,组合原层级以实现无限分类。 这种方法避免了传统递归的性能开销,提高了代码的效率,适合于那些不需要实时更新且数据结构相对固定的分类场景。通过这个实例,开发者可以学习如何利用PHP数组操作来实现复杂的数据组织和分类逻辑,而无需涉及数据库查询。
资源详情
资源推荐
使用使用PHP数组实现无限分类,不使用数据库,不使用递归数组实现无限分类,不使用数据库,不使用递归.
复制代码 代码如下:
<?php
class cat
{
public $data;
public function __construct()
{
@include “data.php”;
$this->data = $class;
}
public function CreateSortLevel($fatherlevel)
{
if(empty($fatherlevel))
{
if(is_array($this->data))
{
$fast_level = array();
foreach($this->data as $value)
{
if(strlen($value[“sortlevel”]) == 3)
{
$fast_level[] = $value[“sortlevel”];
}
}
$max_fast_level = max($fast_level);
unset($fast_level);
$sub = ceil($max_fast_level) + 1;
switch(strlen($sub))
{
case 1:
return “00{$sub}”;
break;
case 2:
return “0{$sub}”;
break;
case 3:
return $sub;
break;
}
}
else
{
return “001”;
}
}
foreach($this->data as $val)
{
if(eregi(“^”.$fatherlevel.”.{3}$”,$val[“sortlevel”]))
{
$level[] = $val[“sortlevel”];
}
}
if(is_array($level))
{
$max_two_level = max($level);
$sub = ceil(substr($max_two_level,-3)) + 1;
switch(strlen($sub))
{
case 1:
return substr($max_two_level,0,strlen($max_two_level)-1).$sub;
break;
case 2:
return substr($max_two_level,0,strlen($max_two_level)-2).$sub;
break;
下载后可阅读完整内容,剩余3页未读,立即下载
weixin_38736760
- 粉丝: 5
- 资源: 980
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功