if (move_uploaded_file($uploadData['tmp_name'], $uploadPath)) {
$files = fopen($uploadPath, 'r');
while (($line = fgetcsv($files, 0, ",")) !== FALSE) {
//$line = array_combine($line,$line); try but not working
pr($line);
}
}
我得到这样的输出 -
Array
(
[Company Name] => Company Name
[Primary First] => Primary First
[Primary Last] => Primary Last
)
Array
(
[0] => Naturfrisk Energy Bar
[1] => Aksel
[2] => Romer
)
Array
(
[0] => The Code Devloper
[1] => vikas
[2] => Tyagi
)
但我需要这样的输出——
Array
(
[Company Name] => Company Name
[Primary First] => Primary First
[Primary Last] => Primary Last
)
Array
(
[Company Name] => Naturfrisk Energy Bar
[Primary First] => Aksel
[Primary Last] => Romer
)
Array
(
[Company Name] => The Code Devloper
[Primary First] => vikas
[Primary Last] => Tyagi
)
我认为您应该存储 fgetcsv
返回的第一个数组,以便为以后的数组提供键,因为第一行将是标题行,并且您希望将其用于返回的后续数组中的键。
所以这样的事情会起作用
if (move_uploaded_file($uploadData['tmp_name'], $uploadPath)) {
$files = fopen($uploadPath, 'r');
$lineNo = 1;
while (($line = fgetcsv($files, 0, ",")) !== FALSE) {
if($lineNo == 1)
$arrHeader = $line;
else
$line = array_combine($arrHeader, $line);
pr($line);
$lineNo++;
}
}
您可以使用
array_combine()
但首先必须具有标头:
$headers = fgetcsv($files, 0, ",");
while (($line = fgetcsv($files, 0, ",")) !== FALSE) {
$line = array_combine($headers, $line);
print_r($line);
}
并输出:
Array
(
[Company Name] => Naturfrisk Energy Bar
[Primary First] => Aksel
[Primary Last] => Romer
)