Php 在一个数组中?

Php 在一个数组中?,php,Php,所以我有一个数组 $date1 = "12/31/12"; $date2 = "01/01/13"; $a = array( 'all' => true, 'upcoming'=>true, 'date'=>$date1, //'date'=>$date2, 'is_nye'=>true, 'where'=>$whe

所以我有一个数组

$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,因为它取代了原始日期。

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

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

似乎您正在尝试使用重复的键构建数组,但这是无法完成的:

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

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

我想我要做的是,将
date
本身作为一个数组,所以类似于

    $a = array(
        'all' => true,
        'upcoming'=>true,
        'date'=>array(
             $date1,
             $date2
        ),
        'is_nye'=>true,
        'where'=>$where,
        'status'=>'A'
    );
您可以使用:

$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'] . "'";

}

您的查询似乎已丢失。您是否正在使用它生成SQL查询?你能不能解释一下你正在做什么,因为这还不清楚?正如其他人提到的,你要么需要使用不同的键,要么修改数据结构——很难说哪一个更好,看看你将如何构建查询(或者更好,数据库中的基础表)。为什么这是最好的方法?现在没有date1或date2的上下文,开发人员必须知道多维数组的哪个元素包含正确的日期值。