-1

所以我有一个数组

$date1 = "12/31/12";
$date2 = "01/01/13";

$a = array(
            'all' => true,
            'upcoming'=>true,
            'date'=>$date1,
            //'date'=>$date2,
            'is_nye'=>true,
            'where'=>$where,
            'status'=>'A'
        );

我想检查查询是否有两个日期我将如何处理?据我所知,如果我以当前状态添加它,它将仅显示 date2,因为它取代了原始日期。

4

3 回答 3

2

似乎您正在尝试使用重复键构建一个数组,这是无法完成的:https ://stackoverflow.com/a/2879138/665261

由于无法存储您尝试存储的数组(使用重复键),因此当然无法检索值。

答案是使用不同的数据结构,或者将键重命名为唯一的。

我想我会做的是自己制作date一个数组,所以像......

    $a = array(
        'all' => true,
        'upcoming'=>true,
        'date'=>array(
             $date1,
             $date2
        ),
        'is_nye'=>true,
        'where'=>$where,
        'status'=>'A'
    );
于 2012-11-28T21:39:07.497 回答
1

只需以不同的方式命名键:

$a = array(
    'all' => true,
    'upcoming'=>true,
    'date_1'=>$date1,
    'date_2'=>$date2,
    'is_nye'=>true,
    'where'=>$where,
    'status'=>'A'
);
于 2012-11-28T21:38:04.187 回答
0

您可以使用:

$a = array(
            'all' => true,
            'upcoming'=>true,
            'date1'=>$date1,
            'date2'=>$date2,
            'is_nye'=>true,
            'where'=>$where,
            'status'=>'A'
        );

要构造查询,请执行以下操作:

if($a['date2']){

    $query .= "AND date2 = '" . $a['date2'] . "'";

}
于 2012-11-28T21:41:22.810 回答