将天数添加到数组内的特定日期

时间:2012-08-16 09:51:54

标签: php

我有一个TABLE events

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`data` date DEFAULT NULL,
`days` int(2) DEFAULT NULL,
PRIMARY KEY (`id`)

有许多记录。

我生成一个包含所有不可用日期的数组

$sql = "SELECT * FROM events WHERE `data` LIKE '".$cYear."-".$cMonth."-%'";
$sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
while ($row = mysql_fetch_assoc($sql_result)) {
$unavailable[] = $row["data"];
$days[] = $row["days"];
}

数组$不可用是这样的:(2012-08-10,2012-08-25) 数组$ days是这样的:(3,2)

我需要这样一个阵列:(2012-08-10,2012-08-11,2012-08-12,2012-08-25,2012-08-26)

谢谢!

1 个答案:

答案 0 :(得分:1)

以下是一些可以生成您想要的代码。

<?php

$unavailable = array('2012-08-10', '2012-08-25');
$days = array(3, 2);

$dates = array();
for ($i = 0; $i < count($days); $i++)
{
    $tm = strtotime($unavailable[$i]);
    for ($d = 0; $d < $days[$i]; $d++)
    {
        $dates[] = date('Y-m-d', $tm + $d * 24 * 60 * 60);
    }
}
print_r($dates);
?>

您可以将此代码移至代码的while循环中,以防止创建$ unavailable和$ days数组