(这适用于任何框架,但我使用Laravel作为参考)。
以下SQL结果$result
从Controller传递给我的View。
Product | Delivery Method | Priority | Price
Ham | Courier | Low | $3
Ham | Courier | Med | $4
Ham | Courier | High | $5
Jam | Shipping | Low | $9
Jam | Aircraft | High | $20
Jam | Courier | Low | $3
我一直想知道如何切割这些数据并对它们进行“分组”,以便View可以按如下方式打印:(输出为HTML,但我们将为此示例提供明文)
Courier
Low Priority
--all products having low priority under courier e.g.:
Ham | $3
Jam | $3
--similarly for:
Med Priority
High Priority
-- then repeat for next method (shipping).
我一直用嵌套的for循环切断我的数据,并使用数组索引将它存储在Controller中(即$result['Courier']['Low']
,$result['Shipping']['Low']
)然后将其发送到View,这是一个真正的在这个时代以野蛮的方式做事,欢迎提出建议。
答案 0 :(得分:1)
一种可能的解决方案是查询必要的行(假设其中有50行)。然后使用array_filter
或array_map
将它们分成2个新数组。最后,在您的视图中,每个新数组可以有2个循环。应将array_filter
或array_map
逻辑放在View
内,以便实际模板只呈现数据