我有以下阵列......
'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
)
现在我对所有这些线路进行了硬编码,我想这可以更有效,更简单地完成。
提前谢谢你, 马特
答案 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))
);
如果移开模糊,您可以看到它实际上正在使用range
Docs函数和array_map
Docs函数。所以没什么好看的。