PHP:创建从1980年到现在的年份数组

时间:2012-12-30 21:15:35

标签: php arrays

我有以下阵列......

'type' => 'select',
    'options' => array(
        array('name' => '1980', 'value' => '1980'),
        array('name' => '1981', 'value' => '1982'),
        array('name' => '1983', 'value' => '1983'),
        …
        …
        array('name' => '2011', 'value' => '2011'),
        array('name' => '2012', 'value' => '2012'),
    )

任何想法如何“动态地”编写那个东西,以便options数组自动填充1980年至2012年的年份数字?

'type' => 'select',
    'options' => array(
        // create array's from 1980 till date('Y') automatically
    )

现在我对所有这些线路进行了硬编码,我想这可以更有效,更简单地完成。

提前谢谢你, 马特

2 个答案:

答案 0 :(得分:6)

$years = array();    
for ($y = 1980, $now = date('Y'); $y <= $now; ++$y) {
    $years[$y] = array('name' => $y, 'value' => $y);
}

答案 1 :(得分:2)

将数据分配给数组时,可以动态生成它:

$array = array('type' => 'select',
    'options' => array_map(function($year) {
            return array('name' => $year, 'value' => $year);
        }, range(1980, 2012))
);

如果移开模糊,您可以看到它实际上正在使用rangeDocs函数和array_mapDocs函数。所以没什么好看的。