我在excel文件中有一些值,我希望它们都是数组元素记住文件中还包含其他数据。
我知道一种方法是将它们逐个复制并放入数组初始化语句
样本列表,它只是整个列表的一部分
Bay Area
Greater Boston
Greater Chicago
Greater Dallas-Ft. Worth
Greater D.C.
Las Vegas
Greater Houston
Greater LA
Greater New York
Greater San Diego
Seattle
South Florida
当没有多少项目(如
)时,可以很容易地使用值初始化数组$array= array('Bay Area '=>'Bay Area ','Greater Boston'=>'Greater Boston',....)
// and so on
但是我有70-80个项目,如上所述初始化数组是非常繁琐的任务。
那么,伙计们是否有任何备用或捷径来分配带有值列表的数组?
是否有自动数组生成器工具?
答案 0 :(得分:6)
如果你将它们复制到一个文件中,每个文件都有自己的行,你就可以在这个文件中读取这个文件
$myArray = file('myTextFile');
//sets the keys to the array equal to the values
$myArray = array_combine($myArray, $myArray);
您可以将数据从excel导出为CSV,然后将文件读入php,如下所示:
$myArray = array();
if (($file = fopen("myTextFile", "r")) !== FALSE) {
while (($data = fgetcsv($file)) !== FALSE) {
foreach($data as $value) {
$myArray[$value] = $value;
}
}
fclose($handle);
}
答案 1 :(得分:3)
$array = explode("\n", file_get_contents('yourfile.txt'));
对于在PHP中加载CSV文件的更复杂案例,可以使用fgetcsv()甚至PHPExcelReader来获取XLS文件。
编辑(问题编辑后)
(删除了我糟糕的解决方案,因为ohmusama的文件()+ array_combine()显然更好)
答案 2 :(得分:1)
这一个:
$string_var = " Bay Area Greater Boston Greater Chicago Greater Dallas-Ft. Worth "; $array_var = explode("\n", $string_var);
答案 3 :(得分:1)
获取notepad ++,在那里打开excel文件,然后进行简单搜索并替换为regex。比如搜索“(。*)\ n”并替换为“'(\ 1)',”(“quoutes not included”),这会给你一长列表:
'湾区','大波士顿','大芝加哥'
这是在php执行时间方面创建数组的最快方法。
答案 4 :(得分:0)
我觉得它看起来更好:
$a[] = "Bay Area";
$a[] = "Greater Boston";
$a[] = "Greater Chicago";
要创建此类文本文件,请使用Excel(我没有Excel,但看起来有点):
=concatenate(" $a[] = ",chr(34),A1,chr(34),";")
然后只导出该列。