【发布时间】:2016-04-10 12:55:37
【问题描述】:
我目前正在将来自 json api url 的数据插入到我的数据库中,但某些数组未完成填写导致“未定义索引”错误。
有什么好的方法来解决这个问题吗?当然,使用 if isset 语句检查每个项目索引并仅在可用时设置它会起作用,但对于每个条目来说这将是相当乏味的。
foreach($items['response']['groups'] as $item) {
foreach($item['items'] as $item) {
Bar::firstOrCreate([
'lat' => $item['venue']['location']['lat'],
'long' => $item['venue']['location']['lng'],
'postalCode' => $item['venue']['location']['postalCode'],
'city' => $item['venue']['location']['city'],
'state' => $item['venue']['location']['state'],
'country' => $item['venue']['location']['country'],
'address' => $item['venue']['location']['address'],
'rating' => $item['venue']['rating'],
'website' => $item['venue']['url'],
]);
}
}
【问题讨论】:
-
您可以通过在每个数组键上使用 isset() 来测试每个数组的完整性。或者只是通过使用@$item[...][...] 来抑制有关未定义索引的任何警告,这不是很优雅,但可能会解决您的问题。
-
使用isset()有什么不好的地方?
-
isset 工作正常,但在我看来,当您使用 API 时,这是一个反复出现的问题,我想知道 laravel 是否可以开箱即用地帮助解决这个问题。
标签: php arrays eloquent laravel-5.1