0

我正在尝试获取 CSV 文件的第一行,并在单个下拉菜单中显示字段。

CSV (users.csv) 如下所示:

Email,Firstname,Lastname
test@test.com,Test,Testerson
test1@test.com,Test1,Testerson1
test2@test.com,Test2,Testerson2
test3@test.com,Test3,Testerson3

我已经使用以下代码将第一行传递到数组中。

<?php
 if(($handle = fopen("users.csv", "r")) !== FALSE)
    {
        $arrHeader[] = fgetcsv($handle, 0, ",");
    }       
print_r ($arrHeader);
?>

我现在想将该数组传递到单个下拉菜单中,因此菜单上的唯一选项将是电子邮件、名字和姓氏。

当我尝试将这些值直接传递到菜单中时,显然会出现转换错误。

任何帮助将不胜感激。

谢谢。

编辑:

我已经尝试了以下方法,但遇到了数组到字符串的转换错误。

<?php
 if(($handle = fopen("users.csv", "r")) !== FALSE)
    {
        $arrHeader[] = fgetcsv($handle, 1000, ",");
    }   
foreach($arrHeader as $arr1)
    {
        echo '<option value = "' . $arr1. '">' . $arr1 . '</option>';
    }  
?>
4

2 回答 2

1

您的数组将是
Array ( [0] => Array ( [0] => Email [1] => Firstname [2] => Lastname ) )

所以试试

$arrHeader = $arrHeader[0];       
foreach($arrHeader as $value=>$title){       
echo '<option value = "' . $value. '">' . $title. '</option>';
}
于 2013-06-27T09:34:14.393 回答
0

您可以使用implode功能,例如。像这样

echo '<option>' . implode('</option><option>', $arrHeader) . '</option>';

但你可能也想拥有value属性,所以循环会更好:

foreach($arrHeader as $text){
  echo '<option value = "' . $text. '">' . $text . '</option>';
  } 

编辑

如果您想分配列号,请考虑使用:

foreach($arrHeader as $key=>$text){
  echo '<option value = "' . $key. '">' . $text . '</option>';
  } 
于 2013-06-27T09:14:50.287 回答