创建一个重复的整数数组 - PHP

时间:2013-07-17 10:16:50

标签: php arrays loops

我只想制作一个月份日期的数组。所以日期最多从1到31开始。

显而易见的是,我知道这是一种手动方式:

$date_array = array( '1', '2', '3', '4', '5', '6', '7', ..., '31' );

但我正在寻找一种自动化方式,就像一个简单的for loop,让我成为我想要的自动生成日期:

for($Idx=1;$Idx<32;$Idx++) {
  var_dump($Idx);
}

只需将它们放在一个数组中即可。

想象

$my_date_array = makeArray( $Idx );

makeArray() - 哈!:)

可能的吗

4 个答案:

答案 0 :(得分:6)

使用此:

function makeArray ($calendar, $month, $year) { 
   return range (1, cal_days_in_month ($calendar, $month, $year));
}

实施例

$aMyArray = makeArray (CAL_GREGORIAN, 8, 2003);

参考

  • range array range ( mixed $start , mixed $end [, number $step = 1 ] )
  • cal_days_in_month int cal_days_in_month ( int $calendar , int $month , int $year )

答案 1 :(得分:1)

$date = time(); // A Unix timestamp, so for example 'strtotime("2013-01-01")'.
$array_of_days_in_month = range(1, date("t", $date));

date("t")将返回给定月份的天数。

答案 2 :(得分:0)

使用range()

$data = range(1,31);

答案 3 :(得分:0)

function makeArray() {
    $months = array(31,28,31,30,31,30,31,31,30,31,30,31);
    $array = array();
    foreach($months as $month) {
        $array = array_merge($array, range(1, $month));
    }
    return $array;
}

此功能考虑到每个月的天数不同。请留意闰年!

如果你今年需要这个,请使用它。它照顾你的闰年!

function makeArray() {
    $array = array();
    for($month = 0; $month < 12; $month++) {
        $array = array_merge($array, range(1, date("t", mktime(0, 0, 0, $month, 1)));
    }
    return $array;
}