PHP新手,所以不确定这是不是最好的方法。基本上我有一个记录集的结果,现在我可以做3或4个查询&返回结果,因为我需要它们,但我认为有一个查询并在我需要的时候在数组中过滤结果会更有效。
我把结果放到一个数组中,现在我想按周和月显示结果,所以我有理由将数组循环3次,每天,每周和每月,而不是3次调用数据库。 / p>
第一个问题是PHP中最好的方法???
其次是我无法解决如何使用array_filter($ array_name,DATE?)我无法让日期部分工作。
数组/记录集可以是:
姓名,目标,日期
我希望按天,周和周二显示结果一个月。
所以我得到了:
array_filter($staff_tagret_results,"evaldate");
一个功能:
function evaldate($x) {
if($staff_tagret_results == DAY/WEEK/MONTH){
return true;
}
}
但我无法找到如何定位阵列的日期字段并与今天进行比较?
感谢您的任何建议。
阵列内容:
Array(
[0] => Array(
[staff_id] => 11[0] => 11[work_date] => 2014 - 02 - 12[1] => 2014 - 02 - 12[target_set] => 115[2] => 115
) [1] => Array(
[staff_id] => 4[0] => 4[work_date] => 2014 - 02 - 12[1] => 2014 - 02 - 12[target_set] => 115[2] => 115
) [2] => Array(
[staff_id] => 9[0] => 9[work_date] => 2014 - 02 - 12[1] => 2014 - 02 - 12[target_set] => 115[2] => 115
) [3] => Array(
[staff_id] => 11[0] => 11[work_date] => 2014 - 02 - 12[1] => 2014 - 02 - 12[target_set] => 115[2] => 115
) [4] => Array(
[staff_id] => 4[0] => 4[work_date] => 2014 - 02 - 12[1] => 2014 - 02 - 12[target_set] => 115[2] => 115
) [5] => Array(
[staff_id] => 9[0] => 9[work_date] => 2014 - 02 - 12[1] => 2014 - 02 - 12[target_set] => 115[2] => 115
) [6] => Array(
[staff_id] => 11[0] => 11[work_date] => 2014 - 02 - 12[1] => 2014 - 02 - 12[target_set] => 240[2] => 240
) [7] => Array(
[staff_id] => 4[0] => 4[work_date] => 2014 - 02 - 12[1] => 2014 - 02 - 12[target_set] => 240[2] => 240
) [8] => Array(
[staff_id] => 9[0] => 9[work_date] => 2014 - 02 - 12[1] => 2014 - 02 - 12[target_set] => 240[2] => 240
) [9] => Array(
[staff_id] => 4[0] => 4[work_date] => 2014 - 02 - 12[1] => 2014 - 02 - 12[target_set] => 180[2] => 180
) [10] => Array(
[staff_id] => 9[0] => 9[work_date] => 2014 - 02 - 12[1] => 2014 - 02 - 12[target_set] => 180[2] => 180
)
)
答案 0 :(得分:0)
由于没有足够的声誉,我无法发表评论:
如果您查看原始帖子,您会看到“让您的代码可读”的最重要含义
回到你的问题:
我很困惑为什么你的数组中的每个值都有2 x:
Array (
[staff_id] => 11 [0] => 11
[work_date] => 2014-02-12 [1] => 2014-02-12
[target_set] => 115 [2] => 115 )
如果我做一个简单的选择查询,我得到:
Array
(
[0] => Array
(
[staff_id] => 4
[work_date] => 2014-02-18
[target_set] => 115
)
[1] => Array
(
[staff_id] => 9
[work_date] => 2014-02-20
[target_set] => 115
)
[2] => Array
(
[staff_id] => 11
[work_date] => 2014-02-20
[target_set] => 115
)
)
如果要对数组进行排序:
foreach ($aArray as $key => $row) {
$date[$key] = $row['work_date'];
}
array_multisort($date, SORT_DESC, $aArray);
这会让你:
Array
(
[0] => Array
(
[staff_id] => 9
[work_date] => 2014-02-20
[target_set] => 115
)
[1] => Array
(
[staff_id] => 11
[work_date] => 2014-02-20
[target_set] => 115
)
[2] => Array
(
[staff_id] => 4
[work_date] => 2014-02-18
[target_set] => 115
)
)
这是我怎么做的。可能有一种更简单的方法: - )
标记
编辑:更改了排序方向,以便可以看到数组中的更改