【发布时间】:2016-09-09 16:20:20
【问题描述】:
我想不通这个。我还在学习数组,所以请放轻松。我正在使用 codeigniter。
我的标记中有 3 个标签(1 个月、2 个月、3 个月)。
每个标签显示 3 个价格框(3 个级别 - 基本 = 1、标准 = 2、特色 = 3)。
我需要显示 9 个价格,从 1 次查找中提取:
return $this->db->get('prices')->result_array();
在数据库中是这样的
我应该尝试从我的模型中所示的一次查找中执行此操作,还是应该进行多次查找,或者我应该只是在控制器设置变量中管理该查找,准备显示视图或只是在视图中做所有事情?如何?唯一想到的 3x foreach 循环,在循环内部我说:
if($prices['months']==3) echo $prices['level'].' is '.$prices['amount'].'<br>';
我想知道执行此操作的最佳方法,以及如何通过一次查找来完成数组,因为我认为我真的需要正确地了解数组。谢谢:)
-- 编辑以显示我最终在下面使用的内容--
在控制器中,受到 array_chunk 的启发,但更多的是手动并允许表扩展,正在设置我在 php 手册中阅读的数组键:
foreach ($prices as $price_row) {
$data['prices'][$price_row['months']][] = $price_row;
}
那么在视图中我可以只用foreach一个月:
foreach ($prices[1] as $p) {
echo level_name($p['level']).' = '.$p['amount'].'<br>';
}
【问题讨论】:
-
感谢大家的回答,以及一些有趣的解决方法。我正在更新我的帖子,说我最终做了什么。不确定是否出于任何原因这是一种不好的方式,但它似乎是最短和最整洁的。 Array_chunk 看起来也很整洁,但不是真正可扩展的,虽然我不认为会添加更多,你永远不知道。
-
非常感谢您发布此内容。
标签: php arrays codeigniter