我想填充刻鐘時間的下拉列表。關鍵是選項值,而值是選項文本。使用array_map構建數組的時間 - 關聯數組的可能性?
private function quarterHourTimes() {
$formatter = function ($time) {
return date('g:ia', $time);
};
$quarterHourSteps = range(25200, 68400, 900);
return array_map($formatter, $quarterHourSteps);
}
問題是,上述函數的工作原理,但似乎不工作作爲關聯數組。這個問題有沒有優雅的解決方案?
爲重點,我希望有時間以下列格式date('H:i', $time);
例如陣列應該是這樣的:
$times =
[
['07:00' => '7:00am'],
['07:15' => '7:15am'],
['07:30' => '7:30am'],
['07:45' => '7:45am'],
['08:00' => '8:00am'],
['08:15' => '8:15am'],
...
];
我的解決方案 - 轉儲array_map:
private function myQuarterHourTimes()
{
$quarterHourSteps = range(25200, 68400, 900);
$times = array();
foreach(range($quarterHourSteps as $time)
{
$times[date('H:i', $time)] = date('g:ia', $time);
}
return $times;
}
小心單詞「遞歸」:'array_map()'適用你把它給你提供了數組中每個元素的功能。如果你提供的回調函數本身沒有調用,那麼就沒有遞歸。 – crennie
@crennie - 你是對的,很好被發現。 - 我之前嘗試過遞歸地做這件事,而這個問題涉及遞歸地做這件事。爲了解決這個問題,我刪除了遞歸,但忘了更改標題。我的錯。 – Gravy