php在foreach double中防止foreach

php在foreach double中防止foreach,php,date,foreach,between,Php,Date,Foreach,Between,我正在尝试从开始到结束之间的日期。通过使用datetime类 但是,当我使用它时,它可以很好地处理动态结果,比如foreach内部foreach的日期是双倍的。我尝试过使用独特的_数组,但没有成功。有什么建议吗?:) Availabledates内容屏幕截图(忽略逗号): 例如: $result = $wpdb->get_results('SELECT fdate, tdate FROM availabledates'); foreach($result as $data):

我正在尝试从开始到结束之间的日期。通过使用datetime类 但是,当我使用它时,它可以很好地处理动态结果,比如foreach内部foreach的日期是双倍的。我尝试过使用独特的_数组,但没有成功。有什么建议吗?:)

Availabledates内容屏幕截图(忽略逗号):

例如:

$result = $wpdb->get_results('SELECT fdate, tdate FROM availabledates');
    foreach($result as $data):
        $fdate = date('Y-m-d', $data->fdate);
        $tdate = date('Y-m-d', $data->tdate);

        $begin = new DateTime($fdate);
        $end = new DateTime($tdate);

        $daterange = new DatePeriod($begin, new DateInterval('P1D'), $end);
        foreach($daterange as $date){
            echo $date->format("Y-m-d") . "<br>";
        }
    endforeach;
$result=$wpdb->get_results('SELECT fdate,tdate FROM availabledates');
foreach($结果为$数据):
$fdate=date('Y-m-d',$data->fdate);
$tdate=日期('Y-m-d',$data->tdate);
$begin=新日期时间($fdate);
$end=新日期时间($tdate);
$daterange=新的日期周期($begin,新的日期间隔($P1D'),$end);
foreach($daterange作为$date){
echo$date->format(“Y-m-d”)。“
”; } endforeach;

很好。我不知道该有什么感觉。我发现这个范围太大了,我以为是个虫子。结果不是这样。它的有效期为40天。我应该多加注意。感谢您的时间:不要惊慌:)

availabledates
表中有多行吗?我很难再现错误(使用硬编码值而不是从数据库中提取,但输出似乎仍然类似。)您能更详细地描述输出是如何加倍的吗?每个日期是否连续打印两次,即
2015-06-30、2015-06-30、2015-07-01、2015-07-01等
,或者整套日期打印两次?嗯。。基本上,这只是打乱了秩序。我认为最好的解释是,这是对内容的怀疑。我不认为foreach内部的foreach是最好的解决方案,也许还有另一种解决方案?:)嗯,我可能误解了输出,但我希望某些值会重复,因为两个记录的日期范围确实重叠。第一个是6/30到8/23,第二个是8/3到8/16,使用嵌套的foreach循环,它将输出第一条记录的所有日期,然后是第二条记录的所有日期。输出的目标是什么?