我有一個從 CSV 檔案中提取的資料陣列,并將資料插入到資料庫中:
HistoricData::insert($csv->content);
插入的陣列如下所示:
[
{
"timestamp": "1619138160000",
"open": "51917.16",
"close": "51846.89",
"high": "51919",
"low": "51804.44"
},
{
"timestamp": "1619138100000",
"open": "51954.86",
"close": "51917.15",
"high": "51954.86",
"low": "51914.06"
}]
但是,我還想添加一個名為“historic_data_group_id”的額外列,并且對于插入的每一行,它都等于 1。
有沒有辦法做到這一點,而不必在呼叫模型的插入方法之前回圈遍歷陣列并為每個元素添加它?在現實世界的應用程式中,這個陣列有數千個元素,所以如果可能的話,我更喜歡一種更有效的方法。
uj5u.com熱心網友回復:
您可以使用 array_map()
$csvContent = array_map(function($oneEntry){
$oneEntry['historic_data_group_id'] = 1;
return $oneEntry;
}, $csv->content);
但回圈遍歷陣列似乎更具可讀性
foreach ($csv->content as &$content) {
$content['historic_data_group_id'] = 1;
}
// unset($content);
uj5u.com熱心網友回復:
你的模型HistoricData已經有這個列了嗎?如果尚未創建遷移以使用默認值 1 添加此列。在新插入其作業自動(無需更改 $csv)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/391958.html
下一篇:有什么辦法可以在查詢中分解表嗎?
