利用php递归实现无限分类 格式化数组的详解

网络编程 2025-03-14 12:39www.168986.cn编程入门

深入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 = 查询数据库得到的结果集; // 这里省略了具体的查询代码。假设已经正确获取结果集。

上一篇:linux系统ubuntu18.04安装mysql 5.7 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by