您应该在将数据解析为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}

php中解析数组,在PHP中解析多维数组相关推荐

  1. php某列为键数组为值,PHP 将二维数组中某列值作为数组的键名 -- 超实用

    有时候,想通过数组的中某字段值, 然后再在二维数组中获取存在该字段值的数组: 一般能想到的就是foreach 遍历比较一下跟该字段值一样,就获取到想要的数组,如下: //测试二维数组 $arr =ar ...

  2. c语言二维数组中的周边,【C语言】二维数组中的查找,杨氏矩阵

    //二维数组中的查找,杨氏矩阵 //在一个二维数组中,每行都依照从左到右的递增的顺序排序.每列都依照从上到下递增的顺序排序. //请完毕一个函数.输入这种一个数组和一个数,推断数组中是否包括这个数. ...

  3. 算法013:二维数组中的查找-在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断中是否存在

    题目:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数.示例: 现有 ...

  4. 《c primer pius》第十章第6题,编写一个程序,初始化一个二维double数组,并利用练习2中的任一函数来把这个数组复制到另一个二维数组(因为二维数组是数组的数组,所以可以使用处理一维数组的

    <c primer pius>第十章第6题,编写一个程序,初始化一个二维double数组,并利用练习2中的任一函数来把这个数组复制到另一个二维数组(因为二维数组是数组的数组,所以可以使用处 ...

  5. C语言求二维数组平均数,一道JavaScript的二维数组求平均数的题

    JavaScript中只支持一维数组,但是可以在数组中嵌套数组来创建二维以至于多维的数组.今天下午在看书时候,发现一道感觉比较有意思的题,就是js中如何求二维数组的列之和和行之和,现在就给大家分享下, ...

  6. python 二维数组心得_基于python 二维数组及画图的实例详解

    python中如何使用二维数组 在Python中,一个像这样的多维表格可以通过"序列的序列"实现.一个表格是行的序列.每一行又是独立单元格的序列.这类似于小编们使用的数学记号,在数 ...

  7. c语言二维数组表示坐标,c语言多维数组地址的表示方法

    c语言多维数组地址的表示方法 导语:我们知道数组名就是指针常量.下面让我们了解一下多维数组的地址表现方法. 设有整型二维数组a[3][4]如下: 0 1 2 3 4 5 6 7 8 9 10 11 设 ...

  8. 二维数组和指针(包含交换二维数组行列)

    有必要对a[i]的性质作进一步说明.a[i]从形式上看是a数组中的第i个元素.如果a是一维数组名,则a[i]代表a数组第i个元素所占的内存单元的内容.a[i]是有物理地址的,是占内存单元的.但如果a是 ...

  9. C语言基础入门48篇_30_二维数组的定义与使用(二维数组的定义:type 数组名[行][列]、二维数组的初始化、二维数组的引用)

    1. 二维数组的定义 type 数组名[行][列] 2. 二维数组的初始化 2.1 全部初始化为0 char chAry[2][3] = { 0 }; 实例: #include <stdio.h ...

  10. 数据结构(C)必会知识点+易错点:数组和广义表(n维数组地址计算公式,特殊矩阵对称矩阵的存储,广义表的表示方法)

    一,n维数组地址计算公式 ji表示n维数组中该元素在第i维中的坐标 ai表示n维数组中第i维的起始坐标 bi表示第i维度的长度 L表示一个元素所占的字节数 LOC(-)表示该坐标对应的存储中的地址(一 ...

最新文章

  1. elementUI 写一个表头列名、表体单元格样式、翻页器相对较为动态的表格el-table
  2. HK二分图最大匹配算法模板
  3. 解决vc6.0卡死的方法
  4. Oracle查询优化-04插入、更新与删除数据
  5. 天翼云从业认证(3.3)天翼云网络产品
  6. 【C++】Visual studio样式定制
  7. ldap配置系列二:jenkins集成ldap
  8. 【Python】list tuple
  9. iOS App 调用QQ客户端,发起临时会话
  10. 公式冒号是什么意思_excel函数公式中的:号是什么意思
  11. 「第六篇」0day漏洞
  12. 三合一收款二维码原理以及源码
  13. 用python对我和女票的聊天记录生成心形词云
  14. 微信小程序开发测试appId如何改为真正的appid
  15. CC00051.elasticsearch——|HadoopElasticSearch.V03|——|ELK.v03Logstash部署.V3|
  16. 梦中情盘!基于NextCloud搭建个人私有云!
  17. Mac双系统Win10系统安装MySQL的坑
  18. 6D 位姿估计 位姿测量 常用方法总结 (适用于单目标场景)
  19. 【存储】文件存储、块存储、对象存储的区别
  20. 西门子PLC产生随机数

热门文章

  1. 百年难得一见!阿里园区惊现双月争辉奇观!
  2. C# 多线程 Parallel.For 和 For 谁的效率高?那么 Parallel.ForEach 和 ForEach 呢?
  3. Chrome指令/追踪Http请求相关
  4. 《众妙之门——网页排版设计制胜秘诀》——3.4 展现品牌视觉的同时保持网页的可读性...
  5. wxWidgets之wxGrid控件
  6. MYSQL的全表扫描,主键索引(聚集索引、第一索引),非主键索引(非聚集索引、第二索引),覆盖索引四种不同查询的分析...
  7. Java高级篇 -- List选择及优化
  8. KUKA 声明变量时的几点注意
  9. 学习笔记(34):Python网络编程并发编程-异步调用与回调机制
  10. C++ STL实现的优先队列( priority_queue )