php实战之使用递归读取商品无限分类

拼多多电商API接口详情 阅读详情

最近在做一个商城项目时候,需要取出分类表中的数据,分类表中通过一个pid(父类id)关联各个分类,为了整理读出的二维数据成一个树状的格式,自己在项目中封装了下面一个方法。

/**
 * [treeCats description]
 * @param  [array]  $arr   [原始未排序的数组]
 * @param  [array]  $limit [第一个元素代表开始递归的parent_id,默认为0,第二个元素代表剔除元素及子元素cat_id,如果没有传值,默认为0]
 * @param  integer $level [函数调用的深度]
 * @return [array]         [排好序的数组]
 */
    public function treeCats($arr,$limit,$level=0){
        $rec = array();
            //先消除cat_id对应的值
        foreach ($arr as $key=>$value){
            if($value['cat_id']!=$limit['cd']){
                $arr_new [$key]=$value;
            }

        }
        //对于新数组进行遍历
        foreach ($arr_new as $key => $value) {
        if($value['parent_id']==$limit["pd"] &&$value['parent_id']!=$limit["cd"]){
                $value['level']=$level;
                $rec []= $value;
                //生成用于下一层循环的数组
                $next_limit = array("pd"=>$value['cat_id'],"cd"=>$limit["cd"]);

                $rec = array_merge($rec,$this->treeCats($arr,$next_limit,$level+1));
            }
        }       
        return $rec;
    }

这里设置$limit 的应用场景是如果修改这个分类的父分类为它原来的子分类的话,这个分类枝就发生丢失了,所以这时候就应该将可选类里面剔除它的子类。
这里写图片描述

无限级分类表格展示的 PHP 实现 无限级分类是一种常见的数据结构,用于组织具有层次结构的数据,例如商品分类、组织机构等。在本文中,我将演示如何使用 PHP 创建一个无限级分类表格,并提供相应的源代码。每个分类都应包含一个唯一的标识符(ID)、名称(Name)和父级分类的标识符(Parent_ID)。该函数将循环遍历分类数组,并为每个分类生成相应的表格行。如果一个分类具有子分类,函数将递归调用自身来处理子分类。通过运行上述代码,我们将生成一个包含无限级分类的表格,并正确显示层次结构。,我们可以确定哪些分类是当前父级分类的子分类。 阅读详情

相关推荐

郑州大学WEB实训课程体系

郑大实训课程体系(2014年9月) 总计课时:208课时 说明:最新就业班课程体系分为5部分: Web前台(HTML5)技术 本模块包括HTML5、CSS3、JavaScript 、DOM和JQuery几部分,可完成B/S结构软件的用户操作界面的设计,包括在网页中组件的摆放、布局及事件和使用前台脚本程序编写网页特效。学完本模块以后几乎可以完成在网络中见过的所有页面的编写(静态站的制做)...

张晨光老师的播客 1271

php所有子分类id,递归获取所有子分类ID并将ID拼接成字符串

/***递归获取一个商品类别下的所有商品类别id,并返回逗号拼接的字符串*@param$cid*@paramstring$str*@returnstring*/publicfunctionget_all_child_cate($cid,$str=''){$child=(newCate())->where('parentid','=',$cid)->column('...

weixin_39575850的博客 640

php获取淘宝所有分类

这只是一个调用淘宝API接口的小例子,用递归方式获取淘宝下所有分类。

无限级分类的 表单输出 和表格输出

//获取表单 select 的无限极分类 $data 所有的数据 $pId 父级ID 第三个为默认值 第四个为 间隔public function getTree_select($data, $pId ,$default,$space){ $html = ''; $space_nbsp=''; $nbsp="&...

weixin_30641999的博客 135

PHP两种实现无级递归分类的方法

本文主要介绍了PHP两种实现无级递归分类的方法,具有很好的参考价值。下面跟着小编一起来看下吧

IEC61850实战:从ICD文件解析到模型构建

本文深入解析IEC61850标准中的ICD文件结构,从Header、IED到DataTypeTemplates部分,详细介绍了如何构建电力自动化设备的数据模型。通过实战案例展示ICD文件的创建过程,并分享常见问题的调试技巧,帮助工程师快速掌握IEC61850建模方法,提升电力系统自动化项目的实施效率。

weixin_26841743的博客 496

递归获取所有子分类

递归获取所有子分类

qq_40088333的博客 435

手把手教你用AFL挖掘C程序漏洞:从安装到实战(附常见错误排查)

本文详细介绍了如何使用American Fuzzy Lop (AFL)对C/C++程序进行模糊测试,从环境准备、目标程序插桩编译、初始语料库构建到实战运行与结果分析。重点讲解了AFL的安装、常见错误排查(如核心转储配置、执行速度优化)以及提升测试效率的高级策略(如持久模式、并行化),帮助开发者和安全工程师高效挖掘程序漏洞。

weixin_29014237的博客 407

PHP递归无限分类

function fenleipaixu(){ $sql = "SELECT cat_id,cat_name,parent_id from ecs_category"; $res = $GLOBALS['db']->getAll($sql); $digui_class = tree_cat($res); $new_class = array();

如果暴力不是为了杀戮 553

MATPOWER下载安装教程

将MATPOWER文件复制在C:\Program Files (x86)\MATLAB\R2016b\bin目录下。原来的窗口中多了很多文件路径,点击【保存】,再点击【关闭】选择所要添加的MATPOWER文件夹,点击【选择文件夹】二、将MATPOWER放在bin目录下。找到菜单栏的【设置路径】点击【添加并包含子文件】一、从官网下载后解压。

weixin_47365903的博客 2万+

自动权重化图卷积网络(Auto-Weighted GCN)算法在反洗钱识别中的应用及代码实现

该算法通过自动学习节点之间的权重信息,能够更好地捕捉AML数据中的关系和结构,从而提高反洗钱识别的准确性和效果。传统的AML识别方法通常依赖于专家定义的规则和手动提取的特征,但这些方法在应对大规模和复杂的数据时存在一定的局限性。GCN通过在图上执行卷积操作来捕捉节点之间的关系和结构信息,从而实现对图数据的学习和表示。自动权重化图卷积网络是一种基于GCN的改进算法,能够自动学习节点之间的权重信息,从而更好地捕捉图中的关系。利用自动计算的权重值执行图卷积操作。根据节点之间的相似度,计算每个节点的权重。

syntax_api860的博客 376

PHP+Mysql无限分类的方法汇总

无限分类是个老话题了,来看看PHP结合Mysql如何实现。第一种方法这种方法是很常见、很传统的一种,先看表结构表:categoryid int 主键,自增name varchar 分类名称pid int 父类id,默认0顶级分类的 pid 默认就是0了。当我们想取出某个分类的子分类树的时候,基本思路就是递归,当然,出于效率问题不建议每次递归都查询数据库,通常的做法是先讲所有分类取出来,保...

iDark 的博客空间 147

Keil uVision5 STM32 startup_stm32f10x_md_vl.s error A3906U Malformed via file target not created..

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 2773

两种方式实现PHP+Mysql无限分类

为什么80%的码农都做不了架构师?>>> ...

weixin_34150503的博客 100

核心组件大换血:Backbone与Neck魔改篇:YOLO26替换EfficientNetV2主干:神经架构搜索(NAS)的最优解嫁接

YOLO26引入EfficientNetV2作为Backbone的改进方案探索了计算机视觉模型优化的前沿方向。文章首先分析了YOLO26默认C3k2模块的局限性,指出其在通道利用效率和缩放策略上的不足。随后重点介绍了EfficientNetV2的核心优势,包括Fused-MBConv模块、训练感知的NAS搜索空间和渐进式学习策略,这些特性使其在精度和效率上保持领先。最后提出了将EfficientNetV2嫁接至YOLO26的具体方案,强调通道对齐这一关键挑战,并给出两种解决方案。这一改进思路展现了&quot

ZDQ58818的博客 308

2026终极反反爬:Canvas/WebGL/字体指纹全维度伪装,应对浏览器检测实战指南

本文分享了2026年浏览器指纹检测现状及全维度伪装方案。当前反爬系统采用多维度联合指纹检测,重点针对硬件级(WebGL、Canvas)、系统级(字体、CPU)和行为级(鼠标移动)指纹。作者设计了一个独立的指纹伪装引擎,包含真实设备指纹库、指纹生成器和统一注入层,通过JS沙箱隔离实现伪装。核心方案包括:Canvas指纹通过真实设备渲染差异添加微偏移;WebGL指纹完整劫持上下文返回真实显卡参数;字体指纹劫持measureText方法模拟不同系统字体宽度。该方案实测可连续运行一个月零封号,解决了传统方法易被检测

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 924

PHP用递归返回无限级分类回字符串或数组实例

在栏目比较多的网站中,经常会用到无限分类,本文我们来分享一个用php递归实现的无限分类实例,实例的返回值可以选择是字符串还是数组,很实用。 在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性。那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类。 递归,简单的说就是一段程序代码的重复调用,当把代码写到一个自定义函数中,将参数等变量...

wwppp987的博客 364

STM32F103(二十三)通用同步异步收发器(USART)

学习板:STM32F103ZET6 往期博客: STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结 STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置 STM32F103五分钟入门系列(三)GPIO的常用库函数使用方法总结+一个网络上的误区 STM32F103五分钟入门系列(四)蜂鸣器实验(库函数+寄存器) STM32F103五分钟入门系列(五)按键实验(库函数+寄存器) STM32F103五分钟入门系列(六)时钟框图+相关寄存器

Curnane0_0的博客 1019

无限分类,列表页数据展现

<?php namespace Admin\Model; use Think\Model; class CatModel extends Model{ public function gettree($p = 0 ,$lv=0){ //默认为0 $t = array(); //设置空数组 fore

开拓者 281

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

CI框架学习笔记第三天

此文章为自己书写,在Word上做的笔记,然后拷贝到这上边的,无任何抄袭。另外若是程序有任何问题可以评论,也可私信我。 若是想看整个学习笔记代码和数据库可点击此处(包含个人书写的项目代码及数据库文件)。 继第二天的登录及验证码部分继续学习表单验证。表单验证类form_validation类。 首先加载form_validation类。 设置验证规则 通过set_rules方法进

伟仔的小天地 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

php递归商品分类,php 无限极递归分类

$array = array(array(‘id‘ => 1, ‘pid‘ => 0, ‘name‘ => ‘河北省‘),array(‘id‘ => 2, ‘pid‘ => 0, ‘name‘ => ‘北京市‘),array(‘id‘ => 3, ‘pid‘ => 1, ‘name‘ => ‘邯郸市‘),array(‘id‘ => 4, ...

weixin_39647499的博客 215

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

PHP递归实现无限级分类

一个电商网站的分类可以是:服装、鞋类、家居用品等,而服装分类下又可以进一步划分成男装、女装、童装等子分类,男装分类下又可以划分成衬衫、T恤、外套等子分类,这样就形成了多层次的无限级分类。无限级分类是一种对商品或信息进行分类的方式,在这种分类方式中,每个分类都可以再次细分出更多的子分类,形成无限的级别。在PHP中实现无限级分类可以使用递归的方法来实现。下面是一个简单的示例:

php-yyds 1215

php递归商品查询,php – 具有单个查询的递归类别?

如果树不是太大,你可以使用一些聪明的引用来简单地在PHP中构建树.$nodeList = array();$tree = array();$query = mysql_query("SELECT category_id, name, parent FROM categories ORDER BY parent");while($row = mysql_fetch_assoc($query)...

weixin_39928102的博客 116

php的递归类型,PHP递归实现无限级分类

在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性。那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类。在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性。那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类。递归,简单的说就是一段程序代码的重复调用,当把代码写到一个自...

weixin_34480323的博客 428

php商品显示循环,php – 如何在循环中显示GROUP BY数据

id | Rating |1 | 3.0 |2 | 3.2 |3 | 4.7 |4 | 2.4 |5 | 2.4 |6 | 4.3 |7 | 2.4 |8 | 3.2 |我基本上试图查询上面的表格来获取这两个字段(id和Rating)的数据,这样我就可以生成一个“本月图像”页面.我可以这样查询数据库:$rows = @mysql_rows('SELE...

weixin_31095703的博客 156
上一篇: php实战之使用curl抓取网站数据
下一篇: 个人博客设计之博文归档(archive)
htmlgood
博客等级 码龄12年 23粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值