我正试图通过使用多维数组来减少我不得不做的SQL查询的数量。问题是,它们对我来说是新的。有人可以给我一些指导如何实现这个目标吗?
以下是数组的示例:
Array
(
[0] => Array
(
[0] => 2013-07-01
[1] => Andy
[2] => Hopkins Module
)
[1] => Array
(
[0] => 2013-07-01
[1] => Frank
[2] => Rotation
)
[2] => Array
(
[0] => 2013-07-01
[1] => James
[2] => Morning Report
)
[3] => Array
(
[0] => 2013-08-01
[1] => James
[2] => Noon Conference
)
这个阵列继续有更多的名字和月份。数据按名称排序,这意味着所有詹姆斯项目都列在一个组中。每组名称可以具有一个或多个数据点。我想做的是每个月循环并打印出第二个和第三个值。我知道如何做一个while语句来打印出所有内容,但我不确定如何按月对所有数据进行分组。
答案 0 :(得分:1)
尝试一下(假设您展示的数组已分配给变量$old_array
):
foreach ($old_array as $key => $value) {
$new_array[$value[0]][] = array($value[1], $value[2]);
}
// Uncomment the next line to print the new array
// print_r($new_array);
答案 1 :(得分:0)
我能够使用jerdiggity代码的修改版本来实现它...而且我能让它工作的唯一方法就是非常丑陋。这些嵌套循环是否常见?
foreach ($incomplete as $key => $value) {
$new_array[$value[0]][$value[1]][] = $value[2];
}
foreach($months as $k=>$v) {
$format = formatDate($v);
echo $format; // date formatted as readable
foreach($new_array[$format] as $k1=>$v1){
echo $k1.'<br>'; //name of person
foreach($v1 as $k2=>$v2) {
echo $v2.'<br>'; //third value or original array
}
}
}