PHP无法识别使用文件头设置的数组键

时间:2013-07-11 01:15:40

标签: php arrays file-upload

我正在尝试使用制表符分隔文件的脚本,并将每行放入一个数组中以提交到数据库中。

文件中的第一行是标题,我的目标是使用标题作为数据键提交给数据库。

我的问题是,即使标题已成功设置为键,但由于某些原因无法识别键,当我调用$ 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++;
                }
            }
        }   
    }

我知道我可以通过其他方式执行此操作,例如使用标头并使用默认数字键调用数组值,但这不会导致动态处理。

0 个答案:

没有答案