php中解析数组,在PHP中解析多维数组

您应该在将数据解析为Smarty之前准备好数据。

你可以这样做:

$result = array(

array('name' => 'Hockey Team 1', 'category_id' => 1),

array('name' => 'Hockey Team 2', 'category_id' => 2),

array('name' => 'Hockey Team 3', 'category_id' => 3),

array('name' => 'Football Team 1', 'category_id' => 4),

array('name' => 'Football Team 2', 'category_id' => 5),

array('name' => 'Football Team 3', 'category_id' => 6)

);

$sports = array();

foreach ($result as $team) {

$sport_parts = explode(' ', $team['name']);

$sport = array_shift($sport_part);

$team['name'] = join(' ', $sport_parts);

if (isset($sports[$sport]) === FALSE) {

$sports[$sport] = array();

}

$sports[$sport][] = $team;

}这将产生这样的数据集,很容易在Smarty中迭代:

array(2) {

["Hockey"]=>

array(3) {

[0]=>

array(2) {

["name"]=>

string(13) "Team 1"

["category_id"]=>

int(1)

}

[1]=>

array(2) {

["name"]=>

string(13) "Team 2"

["category_id"]=>

int(2)

}

[2]=>

array(2) {

["name"]=>

string(13) "Team 3"

["category_id"]=>

int(3)

}

}

["Football"]=>

array(3) {

[0]=>

array(2) {

["name"]=>

string(15) "Team 1"

["category_id"]=>

int(4)

}

[1]=>

array(2) {

["name"]=>

string(15) "Team 2"

["category_id"]=>

int(5)

}

[2]=>

array(2) {

["name"]=>

string(15) "Team 3"

["category_id"]=>

int(6)

}

}

}Smarty模板的一个例子:

{foreach from=$sports key=sport item=teams}

{$sport}

{foreach from=$teams item=team}

{$team['name']}

{/foreach}

{/foreach}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266308.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

了解jQuery并掌握jQuery对象和DOM对象的区别

jQuery的优势: 开源--开放源代码 轻量级 强大的选择器 出色的DOM操作(对DOM元素的一个增删改查) 完善的Ajax,出色的浏览器兼容性,丰富的插件支持,完善的文档(说明书) 链式操作方式, 写得少&…

linux下复制

复制文件 cp - i file tofile 复制目录 cp - r dic todic转载于:https://www.cnblogs.com/Hero-Qiang/archive/2013/03/20/2971579.html

rh php56 php,在全球范围内提供RHSCL PHP的最佳方法

我使用以下网址安装了RHSCL 2:使用RedHat订阅管理器.然后我运行yum删除php *,然后是yum install rh-php56一切顺利,除非现在找不到PHP.然后我运行find / -name php并在以下目录中找到rh-php56:/var/opt/rh/rh-php56/lib/php/opt/rh/rh-php56/register.co…

Vmware15的安装(ps解决:重装Vmware出现无法安装服务Vmware Authorization Service)

参考:Linux之Vmware的安装 作者:一只青木呀 发布时间: 2020-07-09 22:13:14 网址:https://blog.csdn.net/weixin_45309916/article/details/107238658 目录1.前言2.打开Vmware虚拟机安装包安装解决:重装Vmware出现无法…

python多线程模块_python 多线程模块参考

threading.active_count() 返回当前处于 active 状态的线程的数目 threading.current_thread() 返回调用者当前的 Thread 对象 threading.get_ident() 返回当前线程的“thread identifier”属性(3.3新增) threading.enumerate() 返回当前处于 active 状态…

谈谈即时通讯开发平台

由于即时通讯系统的复杂性和对服务器稳定性的很高要求,一般即时通讯系统开发至少需要1年左右的时间,而这还只是测试版,离"稳定"还有一定距离,而这时匆匆上马的不稳定的系统会让你失去用户,您也不可能召集上万…

内存,RAM(DDR),ROM(EEPROM、flash),存储卡(emmc,sd,tf)以及Cache的区别与联系

参考:内存,RAM,ROM,Cache的区别与联系 作者:一只青木呀 发布时间:2020-09-26 09:55:40 网址:https://blog.csdn.net/weixin_45309916/article/details/108808106 参考:EEPROM和flash…

PHP数据库可视化分析工具,5个MySQL GUI工具推荐,帮助你进行数据库管理

MySQL的数据库管理工具非常多,有哪些优秀的GUI工具可以帮助提高工作效率?不妨看一看这5个MySQL GUI工具。1、Navicat for MySQLNavicat for MySQL是数据库管理工具,与MySQL,MariaDB和云数据库兼容,是目前非常受欢迎的数据库前端用…

idea 项目jar反编译java_带你上手阿里开源的 Java 诊断利器:Arthas

本文适合有 Java 基础知识的人群。本文作者:HelloGitHub-秦人HelloGitHub 推出的《讲解开源项目》系列,今天给大家带来一款阿里开源的 Java 诊断利器 Arthas 项目—— Arthas项目源码地址:https://github.com/alibaba/arthas一、简介 为什么要…

22Java之JDBCTemplate总结

写在前面:这里总结4种方式来操作数据库(SE阶段) 一、JDBC JDBC有关的类:都在java.sql 和 javax.sql 包下.1.数据准备 这里假设已经在数据库中新建立了mydb4数据库,并且也插入了一些数据,并且还需要导入一个…

福布斯评科技未来五大趋势:电脑消失融入生活时间

福布斯评科技未来五大趋势:电脑消失融入生活时间 谈趋势似乎并不讨巧,因为所谓趋势通常都是指时尚。每每谈及趋势,人们立刻就会想到穿着夸张服饰在T台上昂首阔步的模特,但每当下一季的新款推出,再华丽的时装都会很快…

Windows如何开启虚拟化,以安装虚拟机?

参考:Windows如何开启虚拟化,以安装虚拟机? 作者:一只青木呀 发布时间:2020-08-28 20:58:45 网址:https://blog.csdn.net/weixin_45309916/article/details/108286787 设置BIOS 安装 Ubuntu 时报错&#x…

php生成文件index.html,Typecho生成静态首页index.html文件

Typecho生成静态首页index.html文件作者:佚名来源:爱好者时间:2019-11-02在挨踢路看到的教程,不仅仅适用于Typecho,wordpress也是可以通用。教程在网站根目录新建文件f5.php然后里面写入下面的代码。$nowtimetime();$p…

python语言1002python语言_PYTHON语言学习

PYTHON 语言学习 通过两个星期的自学 python 语言,初步了解到 python 的知识构架。它比 C 语言和 C 语 言在某种程度上来说要简单些, 但是也有很多我不懂的东西。 陈老师给我安排的课堂任务是 第 21 章的 Database Programming ,通过 python …

python数据结构之栈

栈栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据&a…

Ubuntu 16.04安装教程及虚拟机设置

摘自:Ubuntu 16.04安装教程及设置 作者:一只青木呀 发布时间: 2020-07-09 22:36:50 网址:https://blog.csdn.net/weixin_45309916/article/details/107239119 配合这篇博文:安装ubuntu20.04并进行优化——安装vim,gcc,…

matlab vision工具箱使用手册,matlab-Computer Vision System ToolBox的系统对象使用

在MATLAB中,调用计算机视觉工具箱中的vision.GeometricScaler可实现对输入图像的缩放变换。 vision.GeometricScaler的具体使用方法如下: vision.GeometricScaler 功能:对图像进行几何尺寸的放缩; 语法:A step(vision…

python方法名加__学习python中__name__方法使用

今天在自学生产者消费者模型时,发现了一个有趣的方法 if__name__ "__main__": for i in range(2): p Producer() p.start() for i in range(10): c Consumer() c.start() 于是就去确认了一下度娘,果然好多初学者都会问这个问题,…

牛客小白月赛6 J 洋灰三角

J 洋灰三角 题目: 链接:https://www.nowcoder.com/acm/contest/136/J来源:牛客网 时间限制:C/C 1秒,其他语言2秒空间限制:C/C 262144K,其他语言524288K64bit IO Format: %lld题目描述 洋灰是…

PureMVC(AS3)剖析:设计模式(二)

PureMVC(AS3)剖析:设计模式(二) 模式 上一篇中介绍了PureMVC中使用的3种设计模式:单例模式、观察者模式、外观模式。本篇将继续介绍剩下的3种设计模式: l 使用中介者(Mediator&…