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

ファズを遠ざけると、実際にrangeドキュメント機能とarray_mapドキュメント機能を利用していることがわかります。だから本当に空想的なものは何もありません。

于 2012-12-30T21:28:45.060 に答える