我有以下数组:
Array
(
[0] => Array
(
[event_id] => 90
[event_date] => 2012-11-29
[multi] => 1
)
[1] => Array
(
[event_id] => 86
[event_date] => 2012-11-29
[multi] => 1
)
[2] => Array
(
[event_id] => 52
[event_date] => 2012-11-30
[multi] => 0
)
)
我正在使用以下代码即时生成:
$dates = array();
$curr_date = array();
$iteration_date = null;
foreach ( $query as $q ) {
$event_id = $q->ID;
$curr_date['event_id'] = $event_id;
$curr_date['event_date'] = date('Y-m-d', get_post_meta($event_id, 'event_unix_date', true));
if ( empty($iteration_date) ) {
$iteration_date = $curr_date['event_date'];
$curr_date['multi'] = 1;
} elseif ( $iteration_date == $curr_date['event_date'] ) {
$curr_date['multi'] = 1;
} else {
$iteration_date = $curr_date['event_date'];
$curr_date['multi'] = 0;
}
array_push($dates, $curr_date);
}
这是基于 MySQL 数据库的结果。
我正在尝试做的是:检查是否有相同的数组[event_date]
,如果有,计算有多少,执行一段特殊的代码(一个函数很好),并根据输出的内容设置[multi]
值1、2 或 3,具体取决于该条件。
基本逻辑是:
检查是否有多个[event_date]
'。如果有,请检查所有匹配的重复日期的类别。如果所有日期都是 X,则填充[multi]
1,如果所有日期都是 Y,则填充 2,如果日期混合 X 和 Y,则填充 3。如果只有一个日期,则填充 1 或 2,具体取决于它的类别在。
我认为我只是循环查询(它是 event_date 的 DESC),我走在正确的轨道上,但这不会让我检查单个条目类别并根据它进行填充。
谁能指出我正确的方向?