2

我有以下数组……</p>

'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
    )

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

提前谢谢你,马特

4

2 回答 2

6
$years = array();    
for ($y = 1980, $now = date('Y'); $y <= $now; ++$y) {
    $years[$y] = array('name' => $y, 'value' => $y);
}
于 2012-12-30T21:17:13.343 回答
2

当您将其分配给数组时,您可以即时生成它:

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

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

于 2012-12-30T21:28:45.060 回答