我正在尝试使用制表符分隔文件的脚本,并将每行放入一个数组中以提交到数据库中。
文件中的第一行是标题,我的目标是使用标题作为数据键提交给数据库。
我的问题是,即使标题已成功设置为键,但由于某些原因无法识别键,当我调用$ data ['Company等特定值时,我在日志中收到“未定义的索引”注意事项“]。
当我执行print_r时,它看起来像这样:
Array (
[Company] => Parking
[Department] => 2290333
[First Name] => JOE
[Last Name] => SMITH
[Hint] => LAST NAME
[Hint answer] => SMITH
[Add-Delete] => Add )
到目前为止,这是我的功能:
public function updatePeople($file) {
$today = date("Y-m-d");
$inactives = array(); //an array to contain the jde numbers of locations not in the .csv
$i = 0;
if ($file['file']['size'] > 0) {
$type = $file['file']['type'];
if($type == 'text/plain') {
$tmp_name = $file['file']['tmp_name'];
$handle = fopen($tmp_name,"r");
while($data = fgetcsv($handle,1000,"\t")) {
if($i != 0) { //skip headers
$data = array_combine($keys,$data);
print '<p>' . $data['Company'] . '</p>'; //results in undefined index notice
print '<pre>'; print_r($data); print '</pre>'; //prints the key/vals just fine
}
else { //convert first line to array keys
$keys = $data;
$keys = array_map('trim', $keys);
$keys[0] = substr($keys[0], 2); //trim off artifact that appears at beginning of first header
}
$i++;
}
}
}
}
我知道我可以通过其他方式执行此操作,例如使用标头并使用默认数字键调用数组值,但这不会导致动态处理。