利用php递归实现无限分类 格式化数组的详解
深入PHP递归实现商品无限分类的数组格式化
在商品分类的数据库结构中,我们常遇到需要展示商品的无限层级分类。今天,我们将详细介绍如何使用PHP递归来实现这一功能,同时格式化输出为特定数组结构。
数据库字段设计如下:
id:商品主键id
fid:商品父id
name:商品名称
预期输出的数组格式如下:
```php
array(
0 => array(
'id' => 1,
'fid' => 0,
'name' => '法国货',
'child' => array(
0 => array(
'id' => 12,
'fid' => 1,
'name' => '香水',
'child' => array(
0 => array(
'id' => 34,
'fid' => 12,
'name' => '女用香水'
)
)
),
1 => array(
'id' => 13,
'fid' => 1,
'name' => '笔记本',
'child' => null
)
)
),
// 其他分类...
);
```
PHP代码实现如下:
我们连接到MySQL数据库(使用PDO方式),并选择了相应的数据库和字符集。然后,我们定义了一个递归函数`get_array`,用于查询并构建分类的数组结构。
```php
// 数据库连接(使用PDO方式)... 这里省略了详细的数据库连接代码。假设已经成功连接。
// 整个思路是递归查询所有的子类,并以数组形式返回。默认从顶级分类开始(fid=0)。
function get_array($id = 0) {
$sql = "SELECT id, fid, name FROM e_cat WHERE fid = :id"; // 使用绑定参数避免SQL注入风险。这里省略了PDO的具体使用。假设已经正确执行了查询。
$result = 查询数据库得到的结果集; // 这里省略了具体的查询代码。假设已经正确获取结果集。
编程语言
- 利用php递归实现无限分类 格式化数组的详解
- linux系统ubuntu18.04安装mysql 5.7
- 如何用Access加密页面?
- vue+webpack 打包文件 404 页面空白的解决方法
- PHP统一页面编码避免乱码问题
- jquery层级选择器的实现(匹配后代元素div)
- 详解Git建立本地仓库的两种方法
- 命令行启动mssqlserver服务的方法示例
- PHP实现深度优先搜索算法(DFS,Depth First Search)详解
- vue和webpack打包项目相对路径修改的方法
- php实现的递归提成方案实例
- JavaScript获得当前网页来源页面(即上一页)的方
- AngularJS ng-style中使用filter
- php导出word文档与excel电子表格的简单示例代码
- 用asp实现的数据库中存取文件的代码
- MySQL无法重启报错Warning- World-writable config file ‘