php - PHP - 消息:未定义索引但索引存在
问题描述
我有一个非常奇怪的问题。我有一个读取 .csv 文件并将其存储在 MySQL 数据库中的小脚本。上传和读取文件工作正常(这是 CodeIgniter 的 csvreader 库) - 当我这样做时:
$csvData = $this->csvreader->parse_csv($_FILES['csv_file']['tmp_name']);
var_dump($csvData);
我得到了正确的结果:
array(62) {
[1]=>
array(1) {
["email_address"]=>
string(29) "info.bucharest@xxx.com"
}
[2]=>
array(1) {
["email_address"]=>
string(28) "cristina.banu@xxx.com"
}
[3]=>
array(1) {
["email_address"]=>
string(24) "office-ro@gxxx.com"
}
接下来我要做的就是循环
foreach($csvData as $data_from_csv){
$this->add_email_to_a_group($data_from_csv['email_address'], $contact_group_id);
}
但此刻我收到消息:
严重性:通知消息:未定义索引:email_address
所以在循环 var_dumping
var_dump($data_from_csv);
给了我这个结果:
array(1) { ["email_address"]=> string(29) "info.bucharest@xxx.com" }
整个项目在共享主机 PHP 7.3 上运行,框架是 CodeIgniter3。
我做错了什么?
提前致谢。
解决方案
好的 - 我明白了。
在这种情况下发生的事情可能与字符编码有关......我认为。
对于我循环中的测试,我添加了一个检查 var_dump(array_keys($data_from_csv));
,它显示“电子邮件”由 8 个字符而不是 5 个字符组成
foreach($csvData as $data_from_csv){
var_dump(array_keys($data_from_csv));
// this was returnig (int)8 rather than expected (int)5
$this->add_email_to_a_group($data_from_csv['email'], $contact_group_id);
}
所以......现在我将努力确保用户上传的文件被正确编码。谢谢
推荐阅读
- r - R 函数使用 . 和〜
- rstudio - 如何在 R Studio 中自动刷新 SQL 查询
- rest - 可以在单个事务中进行数据库操作和 API 调用吗?
- sql - 如何在带有动态列的 SQL 中使用 SUM 函数
- javascript - Kartik Talwar 的 Gmail.js 的“view_thread”事件不起作用
- php - PHP是否阻止了粘性位?
- php - php移动文件奇怪的bug
- python - pd.to_numeric 之后对象未转换为数字
- ionic-framework - 使用 ng-packagr 构建 Ionic 组件库
- javascript - 从 Axios 返回结果