PHP数组生成器

3

我有一个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个项目,像上面那样初始化数组非常繁琐。

那么,大家有没有任何替代方法或快捷方式来分配包含值列表的数组?

是否有自动数组生成器工具?

5个回答

6
如果您将它们复制到每行一个的文件中,您可以像这样在PHP中读取该文件。
$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);
}

更新为新版本的问题。 - ohmusama

3
$array = explode("\n", file_get_contents('yourfile.txt'));

对于在PHP中加载CSV文件的更复杂情况,可以考虑使用fgetcsv()甚至是PHPExcelReader用于XLS文件。

编辑(问题编辑后)

(删除了我的解决方案,因为ohmusama的file() + array_combine()显然更好)


1
这个:
$string_var = "
湾区
大波士顿地区
大芝加哥地区
大达拉斯-沃思堡地区
";

$array_var = explode("\n", $string_var);

抱歉,我忘记提到了,我需要更新带有“键=>值”对的问题。 - Daric

1

打开notepad++,将Excel文件导入其中,使用正则表达式进行简单的搜索和替换。例如搜索"(.*)\n"并替换为"'(\1)',"(不包括引号),这将给您提供一个长列表:

'Bay Area','Greater Boston','Greater Chicago'

这是在PHP执行时间方面创建数组的最快方法。


0

我认为这样看起来更好:

$a[] = "Bay Area";
$a[] = "Greater Boston";
$a[] = "Greater Chicago";

要创建这样的文本文件,请使用Excel(我没有Excel,但它看起来有点像):

=concatenate(" $a[] = ",chr(34),A1,chr(34),";")

然后只导出那一列。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接